Matlab 向量赋值之A(:)=B

本文探讨了Matlab中A(:)=B赋值表达式的原理,从起因出发,解释了该表达式背后的理论,包括A(:)保持原向量维度、按列填充赋值等特性。同时,通过实验演示,区分了已知和未知尺寸的矩阵赋值情况,揭示了在特殊情况下,B作为向量赋值时,结果总是行向量的规律。
摘要由CSDN通过智能技术生成

一、起因

这个表达式的结果很有趣,起因是在看DIC代码时有一行的结果有点奇怪,如图1所示:

图1 等式右边reshape之后的结果是列向量,最终输出f的结果却是行向量

二、理论解释

理解这个赋值表达式结果的前提是以下几点:

1、A(:)表示赋值表达式结果的维度取决于左值的维度,即赋值后A的维度(大小)不变。

2、赋值过程是依次按列取B中元素对A进行填充,赋值效果等效为A=B(:),即相当于把B当作一个列向量填充到A中去。

3、特殊情况:当A不确定维度大小时,即A之前未被赋值过。此时会出现两种情况:

(1)B如果为矩阵(非向量形式),赋值会报错:左侧与右侧格式不兼容。

(2)B如果为向量(行向量或列向量),赋值成功,赋值结果必为行向量(可能跟Matlab默认向量为行向量有关)。

三、实验演示

图2演示了上述解释的1、2(常规情况),图3演示了上述解释的3(特殊情况)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值