MATLAB: нижний индекс с циклом For Llot to Plot - PullRequest
1 голос
/ 24 апреля 2019

В MATLAB я пытаюсь построить цикл for для построения пар индексов x,y, таких как x1,y1, x2,y2 и x3,y3.Цель состоит в том, чтобы цикл for передавал нижний индекс по x и y и отображал 3 цифры.
Вот код:

x1 = rand(10,1);
y1 = rand(10,1);
x2 = rand(10,1);
y2 = rand(10,1);
x3 = rand(10,1);
y3 = rand(10,1);

for i = 1:3
plot(x(i),y(i))
end

Однако я получаю ошибку.Итак, как мне использовать цикл for, чтобы получить доступ к данным для построения графика?

Ответы [ 2 ]

5 голосов
/ 24 апреля 2019

x(1) не может оценить до x1 и так далее. Динамические переменные приводят к такой же проблеме, как ваша. Не создавайте их в первую очередь. Используйте ND-матрицу, если ваши данные имеют одинаковый размер или ячейку-массив / структуру в противном случае.

x = rand(10,1,3);
y = rand(10,1,3);

for k = 1:3
    figure;
    plot(x(:,:,k),y(:,:,k));
end
3 голосов
/ 24 апреля 2019

Ах, понятно.Как указано в комментариях, не делайте этого.Гораздо лучший подход (если все переменные имеют одинаковый размер):

X = rand(10,3);
Y = rand(10,3);

for k=1:size(X,2)
    figure
    plot(X(:,k),Y(:,k)) % creates 3 different figures
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...