我已经完成了很多搜索,到目前为止还找不到满意的答案,所以如果已经提出这个问题,我很抱歉。Matlab:数组求和总和
我被困在如何总结一个数组的维度。我有数组A(w0,lambda,2048,2048),并且我希望能够定义第二个数组U(w0,2048,2048),它由A和维数lambda的和组成。
到目前为止,我已经确定这两个A和U如下:
A = zeros(length(w0),length(lambda),2048,2048);
U = zeros(length(w0),2048,2048);
for ii = 1:length(w0) % Scan through spot sizes
for aa = 1:length(lambda) % Scan through wavelengths
A(ii,aa,:,:) = ASM(w0(ii),lambda(aa),z1,z2);
end
U(ii,:,:) = sum(A,2);
end
哪里ASM仅仅是一个函数。 z1和z2在前面定义,在这里不相关。
我一直在试图想出发现U(w0,2048,2048)的总和超过A(拉姆达)的第二维度的其他可能的方法,但都没有成功...
感谢您的指点,并再次抱歉,如果这已经解决!
James。
非常感谢!现在用第一种方法工作。之前还没有遇到过squeeze()函数 - 对matlab来说很新颖。 – James 2013-03-02 16:34:45