在Matlab中创建相同大小的多个变量

时间:2014-01-25 13:56:43

标签: matlab performance

说,我想在MATLAB中创建3个相同大小的变量:

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

有没有快速的方法来做到这一点,我知道这不起作用,但我想像

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

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

要使用deal,不需要像NKN建议的那样将其包装在单元格中:

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

答案 1 :(得分: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);

丹尼尔建议。