Передача переменных в функции с входными аргументами переменной длины - PullRequest
1 голос
/ 31 октября 2011

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

out = blkdiag(a,b,c,d,...), где a, b, c, d, ... - матрицы, выводит блочную диагональную матрицу в виде

enter image description here

Предположим, у меня есть матричный массив ячеек (или некоторая другая структура данных);как бы я передать это функции, как blkdiag?

1 Ответ

3 голосов
/ 01 ноября 2011

Используйте {:}, чтобы развернуть его для функции:

blocks = cell(2);
blocks{1} = rand(2);
blocks{2} = rand(2);
out = blkdiag(blocks{:})

Ответ:

out =

0.6787    0.7431         0         0
0.7577    0.3922         0         0
     0         0    0.6555    0.7060
     0         0    0.1712    0.0318
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...