【发布时间】:2012-07-03 08:57:13
【问题描述】:
我在重塑元胞数组时遇到问题:
w = size(im,1); % width size
h = size(im,2);
d = size(crossfield,3);
for pxRow = 1:h % fixed pixel row
for pxCol = 1:w % fixed pixel column
for pxBreadth = 1:d
for r = 1:h % row of distant pixel
for c = 1:w % column of distant pixel
for z = 1:d
field(c,r,z) = crossfield(c,r,z).*rmatrix(c,r,z);
end
end
end
b(i) = {field}; % filling a cell array with results. read below
i = i+1;
end
end
end
b = reshape(b, w, h,z);
和错误:
使用 ==> 重塑时出错
要重塑元素的数量不能改变。
其他一些可能有用的信息:
>> size(im)
ans =
35 35
>> size(crossfield)
ans =
35 35 3
>> size(rmatrix)
ans =
35 35 3
>> size(w)
ans =
1 1
我怎样才能重塑 b?
【问题讨论】:
-
您的代码在我的机器上运行良好(当我调用
reshape时没有错误)。i的初始值是多少?当你在运行循环后执行size(b)时你会看到什么?我在循环之前设置了i=1;,并在运行循环后看到b为1x3675。