v = -2:0.2:2;
[x,y] = meshgrid(v);
z = x .* exp(-x.^2 - y.^2);
[px,py] = gradient(z,.2,.2);
orient11 = [(-px(1,1)) (py(1,1)) 0]; % based off of your concatination there.
size(orient11)
然后我得到:
ans =
1 3
如果您只想从您拥有的渐变中获取第一列数据并且只想与它们堆叠零,您可以这样做:
orient11 = [(-px(:,1)) (py(:,1)) zeros(size(px,1),1)];
而不是一个for
循环。
更新:
Orient = zeros(size(px,1),3,size(px,2));
for n = 1:size(px,1)
Orient(:,:,n) = [(-px(:,n)) (py(:,n)) zeros(size(px,1),1)];
end
现在的布局Orient
是你的 -px, py, 0 in layers。每层代表来自初始数据的列。因此,如果您想访问第 4 行第 14 列,您可以调用Orient(4,:,14)
.
希望这有意义并有所帮助!