Как перебирать вектор столбца в Matlab? Возможный дубликат: Как выполнить итерацию каждого элемента в n-мерной матрице в MATLAB? У меня есть вектор-столбец list, который я бы хотел повторить так: for elm in list //do something with elm Как? Ответ 1 В Matlab вы можете напрямую перебирать элементы в списке. Это может быть полезно, если вам не нужно знать, к какому элементу вы сейчас работаете. Таким образом, вы можете написать for elm = list %# do something with the element end Обратите внимание, что Matlab выполняет итерацию через столбцы list, поэтому, если list является вектором nx1, вы можете его транспонировать. Ответ 2 for i=1:length(list) elm = list(i); //do something with elm. Ответ 3 со многими функциями в Matlab, вам не нужно итерации вообще. например, чтобы умножить на это положение в списке: m = [1:numel(list)]'; elm = list.*m; векторизованные алгоритмы в matlab в целом намного быстрее. Ответ 4 Если вы просто хотите применить функцию к каждому элементу и поместить результаты в выходной массив, вы можете использовать arrayfun. Как указывали другие, для большинства операций лучше избегать циклов в MATLAB и вместо вашего вектора вместо.
Ответ 1 В Matlab вы можете напрямую перебирать элементы в списке. Это может быть полезно, если вам не нужно знать, к какому элементу вы сейчас работаете. Таким образом, вы можете написать for elm = list %# do something with the element end Обратите внимание, что Matlab выполняет итерацию через столбцы list, поэтому, если list является вектором nx1, вы можете его транспонировать.
Ответ 3 со многими функциями в Matlab, вам не нужно итерации вообще. например, чтобы умножить на это положение в списке: m = [1:numel(list)]'; elm = list.*m; векторизованные алгоритмы в matlab в целом намного быстрее.
Ответ 4 Если вы просто хотите применить функцию к каждому элементу и поместить результаты в выходной массив, вы можете использовать arrayfun. Как указывали другие, для большинства операций лучше избегать циклов в MATLAB и вместо вашего вектора вместо.