matlab赋值运算符等号
觉得有用的话,欢迎一起讨论相互学习~




赋值可以给size不同的矩阵
- matlab独特之处在于矩阵的处理,即使两个矩阵的维度不同,但是只要元素数量相同,则可以将B赋值给A。甚至A的维度也可以变得和B相等。
a=[1,2,3]
b=[11;22;33]
a=b
% 连size都变化了
%% a =
%
% 1 2 3
%
% b =
%
% 11
% 22
% 33
%
% a =
%
% 11
% 22
% 33
注意size的变化
- 此时会发现,不仅仅是a中的元素,甚至a的shape也被改变了,为了在赋值的时候不改变a的shape,将b中的元素依次赋值到a中。
% 如果想要只要变数值而不变化size,可以采用按元素赋值
a1=[1,2,3]
b1=[11;22;33]
a1(1,:)=b1(:,1)
% a1 =
%
% 1 2 3
%
%
% b1 =
%
% 11
% 22
% 33
%
%
% a1 =
%
% 11 22 33
赋值
- 赋值仅仅只是赋值,而不是复制,即A=B后,修改A中的元素,并不会引起B中元素的变化,这和
python
中的赋值是不一样的。
a2=[1,2,3]
b2=a2
b2(1)=5
a2% 这里发现a2的值并没有变化
% a2 =
%
% 1 2 3
%
% b2 =
%
% 1 2 3
%
% b2 =
%
% 5 2 3
%
% a2 =
%
% 1 2 3