在MATLAB中迭代函数

时间:2018-04-30 03:51:16

标签: matlab

难以置信的简单问题,但我想我无法想出谷歌搜索它的正确术语。

如果我有一段依赖于三个独立变量的代码:

code(x,y,z)

产生两个值,即:

output1, output2

我如何进行迭代(伪代码):

for x

    for y

        for z

            code(x,y,z)

        end

    end

end

并且我可以解析数据以生成3D图形,例如

surf(x,y,output1)

我提出的一个天真的解决方案就是创建一个 n 长度的bin,然后迭代一个变量 n 次以得到一个2D图,即:

x_axis = zeros(1,25)

for m = 1:25

    xm = x + 1
    x_axis(m) = xm

    code(x,y,z)

即使转介某些文档也会非常有用。

谢谢!

1 个答案:

答案 0 :(得分:1)

蛮力方法:

for x=[1:50]
    for y=[1:50]
        for z=[1:50]
            result(y,x,z)=code(x,y,z);
        end
    end
end

更多范式方法(在MATLAB中)是meshgrid它,并将它们泵入。

[XX,YY,ZZ]=meshgrid([1:50],[1:50],[1:50]);
result=code(XX,YY,ZZ);