Как я могу создать массив дескрипторов / указателей на матрицы в Matlab? - PullRequest
4 голосов
/ 14 мая 2011

У меня есть куча связанных матриц разных размеров, и я хотел бы иметь возможность постепенно получать к ним доступ.Есть ли простой способ создать вектор ручек или указателей на эти матрицы в Matlab?Или это не тот способ, которым я должен это делать?

Например, здесь я хочу назначить вектор, индексированный i, который будет дескриптором для матриц разного размера.

rows = [1:6];
columns = [10:2:20];
for i=1:6
    vector_of_pointers(i) = ones(rows(i),columns(i));
end

1 Ответ

3 голосов
/ 14 мая 2011

В Matlab на самом деле нет указателей.

Вместо этого вы можете собирать массивы в массив ячеек, например:

rows = [1:6];
columns = [10:2:20];
for i=1:6
    arrayOfArrays{i} = ones(rows(i),columns(i));
end

Для доступа, скажем, к массиву № 3, вы пишете arrayOfArrays{3}, и если вам нужна только вторая строка, вы пишете arrayOfArrays{3}(2,:).

Вы также можете создать свой массив, используя ARRAYFUN

arrayOfArrays = arrayfun(@(u,v)ones(u,v),rows,columns,'uniformOutput',false)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...