2014-01-25 7 views
0

Say, я хочу, чтобы создать 3 переменные одинакового размера в MATLAB:Создание нескольких переменных одинакового размера в Matlab

a = zeros(3,3); 
b = zeros(3,3); 
c = zeros(3,3); 

Есть ли быстрый способ сделать это, я знаю, что это не работает, но я думаю, чего-то типа

a,b,c = zeros(3,3); 

Любые предложения?

ответ

2

Для использования deal нет никакой необходимости, чтобы обернуть его в клетке, как предложил NKN:

[a,b,c]=deal(zeros(3,3)) 
+0

Спасибо, сделка делает именно то, что я хотел. –

0

Хотя вы можете сделать это:

a = zeros(3); % a 3x3 zero matrix 
b = a; 
c = a; 

Если определить значения, которые вы хотите назначить, в клетке, другой путь (быстрее) является:

c={zeros(3)}; 
[a1,a2,a3,a4]=deal(c{1}) 

это означает, что вы поместите свое присвоенное значение в ячейку , а затем воспользуйтесь сделкой. Обратите внимание, что a1, a2, a3, a4 не имеет форматов ячеек, но двойных форматов и на самом деле это очень быстрый метод.

Если вы используете ячейку foramt можно назначить несколько значений одновременно, например:

C = {rand(3) ones(3,1) eye(3) zeros(3,1)}; 
[a,b,c,d] = deal(C{:}) 

иначе вы можете просто избавиться от клетки и использования:

c=zeros(3); 
[a1,a2,a3,a4]=deal(c); 

, как Daniel Похожие.

Смежные вопросы