Создание контейнера с матрицами разных размеров - PullRequest
1 голос
/ 12 января 2012

Я хотел бы сделать несколько массивов с разными размерами в Matlab. Есть ли способ сделать это внутри цикла for?

Например, я хотел бы создать матрицу A с размерами 100x100, затем с 200x200 и т. Д.

Ответы [ 2 ]

4 голосов
/ 12 января 2012

Вы можете создать ячейку, в которой храните матрицы:

a = cell(10,1);
for n=1:10
    a{n} = zeros(n*100,n*100);
end

Примечание: чтобы получить элемент из ячейки, вы должны использовать {} вместо (). a {1} возвращает первую матрицу, a (1) возвращает ячейку, которая содержит эту матрицу.

http://www.mathworks.nl/help/techdoc/ref/cell.html

2 голосов
/ 12 января 2012

Попробуйте использовать функцию zeros вместо создания вашего массива внутри цикла.

Что-то вроде:

B = zeros(m,n)
A = zeros(m,n)

Сначала это будет намного быстрее (поскольку массив ненеобходимость изменения размера каждый раз, когда вы добавляете элемент);затем вы можете перебрать его позже и добавить все необходимые значения.

РЕДАКТИРОВАТЬ: я должен уточнить, функция нулей создает матрицу m X n (или массив, если вы пропустите второй аргумент) и заполняет егосо всеми нулями.Это хорошая отправная точка для построения больших массивов.

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