Итерация функции в MATLAB - PullRequest
0 голосов
/ 30 апреля 2018

Невероятно простой вопрос, но я думаю, что не могу найти правильную терминологию для поиска в Google.

Если у меня есть фрагмент кода, основанный на трех независимых переменных:

code(x,y,z)

, который производит два значения, т.е.

output1, output2

Как мне выполнить итерации так (псевдокод):

for x

    for y

        for z

            code(x,y,z)

        end

    end

end

И у меня есть данные, которые я могу анализировать для создания трехмерных графиков, например

surf(x,y,output1)

Наивное решение, которое я придумал, состояло в том, чтобы просто создать корзину размером n и затем итерировать одну переменную n раз, чтобы получить 2D-график, то есть:

x_axis = zeros(1,25)

for m = 1:25

    xm = x + 1
    x_axis(m) = xm

    code(x,y,z)

Даже обращение к какой-либо документации было бы чрезвычайно полезно.

Спасибо!

1 Ответ

0 голосов
/ 30 апреля 2018

Подход грубой силы:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...