Создание Multi Dimesnional Array из 1D массива в Matlab? - PullRequest
0 голосов
/ 15 января 2020

Здравствуйте. Я пытаюсь создать простой массив, содержащий 10 × 3 матрицы. Поэтому я попытался создать 1D матрицу, которая имеет значения 1 x 10. Затем я попытался назначить матрицу 3x3 для каждого из 10 слотов в 1D матрице. Я совершенно уверен, что мой синтаксис неверен и matlab (я не думаю, что это позволяет), но я не смог найти слишком много информации для предварительного назначения такого массива, и я только начал изучать matlab. Вот моя попытка:

big_array = zeros(1,10) # creates 1x10 1d array
for i = 1:10
   big_array(i) = zeros(3,3); #supposedly? assign 3x3 matrix in to each of the 10 slots
end
big_array # received an error

Ответы [ 2 ]

1 голос
/ 15 января 2020

Небольшое уточнение. Если все ваши слоты должны содержать подматрицы одинакового размера, вы можете использовать очень простое выражение:

big_array = zeros(3,3,10) % (first dimension - rows, second dimension - columns, third dimension - bands or arrays)
1 голос
/ 15 января 2020

Если вы знаете, что вам нужен массив из 10 матриц 3x3, вы, как правило, захотите использовать многомерный массив с самого начала.

big_array = zeros(10,3,3);

Вы можете получить доступ к i -ой матрице, используя big_array(i,:,:).

Если вам действительно нужен одномерный массив из матриц 3х3, вам нужно использовать массив cell.

big_array = {};
for i = 1:10
   big_array{i} = zeros(3,3);
end
big_array

Теперь вы можете получить доступ к матрице i, используя big_array{i}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...