【发布时间】:2017-01-29 16:03:29
【问题描述】:
我试图避免 for 循环,并且我一直在阅读所有关于它的旧帖子,但我无法解决我的问题。我是 MATLAB 新手,请原谅我的无知。
问题是我有一个 300x2 的单元格,每个单元格都有一个 128x128x256 的矩阵。每一个都是一个 128x128 像素和每像素 256 个通道的图像。在 300x2 单元格的第一列中,我有我的平行强度值,而在第二列中,我有我的垂直强度值。
我想要做的是获取每个图像的每个像素(对于每个组件)并逐个通道对强度值求和。
我的代码如下:
Image_par_channels=zeros(128,128,256);
Image_per_channels=zeros(128,128,256);
Image_tot_channels=zeros(128,128,256);
for a=1:128
for b=1:128
for j=1:256
for i=1:numfiles
Image_par_channels(a,b,j)=Image_par_channels(a,b,j)+Image_cell_par_per{i,1}(a,b,j);
Image_per_channels(a,b,j)=Image_per_channels(a,b,j)+Image_cell_par_per{i,2}(a,b,j);
end
Image_tot_channels(a,b,j)=Image_par_channels(a,b,j)+2*G*Image_per_channels(a,b,j);
end
end
end
我想我可以加快引入 (:,:,j) 而不是指定 a 和 b。但仍然是一个 for 循环。由于缺乏专业知识,我试图使用 cellfun 没有任何成功。你能帮我一把吗?
我真的很感激。
非常感谢,祝您有愉快的一天! 是的
【问题讨论】:
标签: matlab loops for-loop matrix cell