Я бы использовал num2cell
, чтобы преобразовать это так, чтобы каждый столбец был отдельным элементом в cell array. Затем при необходимости вы можете назначить их различным переменным с помощью deal
.
data = rand(14,13);
cellArray = num2cell(data, 1);
% And if you must assign them to variables.
[A,B,C,D,E,F,G,H,I,J,K,L,M] = deal(cellArray{:});
В качестве альтернативы, вы можете просто получить доступ к элементам cellArray
, а не назначая их переменных.
value = cellArray{1};
size(value)
14 1
Если вы не можете использовать встроенные функции, лучше всего использовать оператор двоеточия, чтобы захватить все строки для данного столбца.
A = data(:,1);
B = data(:,2);
Вы определенно не хотят использовать для петель, если вы можете помочь ему, поскольку они, как известно, медленно в среде MATLAB.
Это, как говорится, может быть проще хранить ваши данные в виде матрицы, а затем выполнять операции над столбцами. Матрица представляет собой гораздо более чистую структуру данных, чем наличие миллиона различных переменных в вашей рабочей области. Это действительно зависит от того, что вы пытаетесь сделать с этим дальше.
К сожалению, я не могу использовать какие-либо встроенные функции для этого: (Назначение требует, чтобы это выполнялось с использованием для циклов ... – Micard
@Micard делает это явно для циклов или просто нет встроенных функций? – Suever
Это не " t сказать «использовать для циклов», но я знаю ожидания. Смотрите, как я показал в своем примере кода, но мне интересно, есть ли лучший способ сделать это. Более процедурный способ. – Micard