我想构建一个“旅行网格”MATLAB。实际上,我必须选择另一个MATLAB命令而不是linspace
来为任何k
构建我的网格。是否可以使用MATLAB命令?
for k=1:5
a=0;
b(k)=k.*3;
x=linspace(0,b(k),10);
y=linspace(0,30,10);
for z=1:length(x)
for t=1:length(y)
A(z,t,k)=x(z).*exp(-y(t));
end
end
end
感谢您的帮助,
答案 0 :(得分:2)
X = linspace(0,3,10);
XX(1,:,:) = bsxfun(@times,X,(1:5)')';
Y = exp(-linspace(0,30,10));
B = bsxfun(@times,Y',XX);
B = permute(B,[2,1,3]);
答案 1 :(得分:0)
您当前的代码工作正常,所以我不确定问题是什么......这是一个稍微简单的实现:
b = (1:5).*3;
A = zeros(10,10,5);
for k=1:5
[X,Y] = ndgrid(linspace(0,b(k),10), linspace(0,30,10));
A(:,:,k) = X.*exp(-Y);
end
如果您还希望y限制也发生变化,那么过程类似;你会有两个循环,结果A
是一个4D矩阵