matlab 矩阵一致,matlab – 内部矩阵尺寸必须一致吗?

这是一个非常简单的错误要解决,我承认这是大多数MATLAB程序员第一次面对MATLAB时所面临的常见错误.具体来说,当你这样做时:

y = exp(-x) * sin(x);

此操作假设您将执行矩阵乘法.你真正想要做的是逐个元素的操作.您希望exp(-x)中的点与sin(x)中的对应元素相乘. @ellieadam提供了一些很好的链接供您查看这些操作是什么,但是如果您想要逐个元素操作,则需要在乘法运算符之前添加一个点(.).因此,您需要这样做:

y = exp(-x) .* sin(x); %// Note the dot!

这条线现在应该可行了.

作为奖励,这是一个简单的例子.假设我有这两个矩阵:

A = [1 2;

3 4];

B = [4 3;

2 1];

通过在MATLAB中执行A * B,您将得到:

>> A * B

ans =

8 5

20 13

请注意,这将执行矩阵乘法.通过做A.* B,这就是我得到的:

>> A .* B

ans =

4 6

6 4

与此声明的不同之处在于A中的一个元素乘以B中的对应元素.A的第一行和第一列乘以第一行,B的第一列,输出矩阵中的相同位置是存储此结果.您可以跟随输出矩阵中的其他元素,它会给您相同的行为.还有其他逐个元素的操作,例如除法和取幂.加法和减法本质上是逐个元素的,因为在矩阵上执行这些操作是以这种方式定义的.

要添加到@ ellieadam的帖子,请查看此MathWorks文章,其中专门向您展示了矩阵和向量的各种操作,包括逐个元素的操作:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值