инициализируя 2d массив, каждый элемент является списком? - PullRequest
0 голосов
/ 25 октября 2011

Итак, я пытаюсь создать переменную, которая содержит 50 списков / массивов. Доступ к элементу в этой переменной вернет один из списков. Если по данному индексу нет элементов, я бы хотел, чтобы он возвращал [].

Моя логика для инициализации это будет что-то вроде:

spectrum_map=[];
for n=1:spectrum_blocks
    spectrum_map=[spectrum_map,[]];
end

Однако после этого я просто получаю пустую матрицу:

spectrum_map =

     []

То, что я хочу увидеть, выглядит примерно так:

spectrum_map =

     []  []  []  []  [] ....

Таким образом, если бы я получил доступ к spectrum_map (2), я бы увидел, что он пуст. Однако вместо этого я получил бы ошибку, что индекс превышает размеры матрицы.

Есть ли другой способ сделать то, чего я пытаюсь достичь?

1 Ответ

3 голосов
/ 25 октября 2011

Вы можете получить нужный эффект, если будете использовать массив ячеек вместо матрицы.

spectrum_map = cell( 1, 50 );
spectrum_map{50}

ans =

     []

Если вам нужно позже преобразовать обратно в матрицу (например, для выполнения математических операций), вы можете использовать функцию cell2mat.

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