Код Matlab, который выводит несколько матриц - PullRequest
0 голосов
/ 03 января 2012

Я пытаюсь написать код Matlab, который с учетом матрицы выводит 3 матрицы (согласно некоторым правилам). Мне трудно заставить это работать - я не могу вывести вектор с матрицами в качестве записей. Я получаю сообщение об ошибке:

??? В присваивании A (I) = B количество элементов в B и I должен быть таким же.

Как я могу это сделать?

Ответы [ 3 ]

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

Вы могли бы написать

function [A B C] = myFunction(X)
    A = X;
    B = 2 * X;
    C = 3 * X;
end

и позвоните по номеру

[a b c] = myFunction(ones(2))

Если вам не нужны все выходы, просто позвоните по номеру

a = myFunction(ones(2))

или

[a b] = myFunction(ones(2))

чтобы получить только первый аргумент или только первые два аргумента.

1 голос
/ 03 января 2012

Вы также можете использовать ячейки:

A=cell(1,3); %% or A=cell(1,2); if you want to output only 2 matrices
A{1}=B;
A{2}=C;
A{3}=D;

Если ваши матрицы имеют одинаковый размер, вы также можете объединить их:

A=zeros(m,n,3);
A(:,:,1)=B;
A(:,:,2)=C;
A(:,:,3)=D;
0 голосов
/ 03 января 2012

Объявление функции:

 function [A, B, C] = something (Input_mat)
 %Do whatever needs to be done here, for example:
 A= Input_mat;
 B= Input_mat';
 C= ones(18);

А затем, когда вы вызываете его, используя:

 [A,B,C] = something (Some_mat)

A, B и C заполняются.

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