MATLAB旅行网格

时间:2011-11-13 23:00:34

标签: matlab matrix

我想构建一个“旅行网格”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

感谢您的帮助,

2 个答案:

答案 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矩阵