Если у вас есть массив из цикла for
for a =1:3;
for b=1:3;
for c=1:3;
disp([a(:) b(:) c(:)])
end
end
end
И вы хотите разделить каждый столбец вывода
Чтобы разделить каждый столбец, вам нужен этот код: предполагая, что данные хранятся в массиве 'A':
yy = A(:,1)
yx = A(:,2)
yz = A(:,3)
and so on...
Но что, если вы не знаете размер своего массива или у вас есть массив m x n? какой общий код для разделения столбца? Благодарность
2 ответа
Сделать это можно так:
y = [1 1 1 1 1
1 2 3 1 1
1 0 2 2 1]
[m,n] = size(y)
for i=1:n
C{i} = y(:,i);
end
Теперь вы можете получить доступ к каждому столбцу через C(1)
, C(2)
, C(3)
и т. Д. C
выглядит так:
C =
{
[1,1] =
1
1
1
[1,2] =
1
2
0
[1,3] =
1
3
2
}
Вывод только C(2)
:
ans =
{
[1,1] =
1
2
0
}
Тем не менее, вероятно, лучше придерживаться кода, который нужен для прямого доступа к столбцу из матрицы (y(:,1)
), вместо того, чтобы создавать набор динамических переменных.
Как бы вы разделили эти столбцы? Не рекомендуется называть их y1, y2, ....
Если вы хотите выбрать i-й столбец, просто используйте y (:, i). Это намного проще в использовании.
Похожие вопросы
Новые вопросы
matlab
MATLAB - это высокоуровневая языковая и интерактивная среда программирования для численных расчетов и визуализации, разработанная MathWorks. Не используйте оба тега [matlab] и [octave], если явно не задан вопрос о сходстве или различии между ними. При использовании этого тега, пожалуйста, укажите версию MATLAB, с которой вы работаете (например, R2017a).