说,我想在MATLAB中创建3个相同大小的变量:
a = zeros(3,3);
b = zeros(3,3);
c = zeros(3,3);
有没有快速的方法来做到这一点,我知道这不起作用,但我想像
a,b,c = zeros(3,3);
有什么建议吗?
答案 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);
丹尼尔建议。