错误使用“*”在我的方程,假设我想做矩阵乘法。

21日视图(30天)
我有一个简单的情节,我试图创建xticks和三角函数。出于某种原因,当我试图阴谋图,说y的方程是使用“*”乘法错了,给了我“矩阵乘法不正确的尺寸误差。显然我不是使用矩阵和我似乎不明白我写的y的方程不正确,和想法吗?下面的代码:
x = linspace (-0.23, 5);
y = x + 6 * (x * cos (x / 3)) + ((x * 30) / sin (x));
情节(x, y);
xticks (-0.23: .1:5);
标题( 问题4:x和F的 );
包含( “x” );
ylabel ( F的值 );
1评论
Stephen23”class=
Stephen23 2023年5月1日在7:02
“很显然我不使用矩阵和我似乎不明白我写的y的方程不正确,和想法吗?”
如果你不做线性algabra那么你可能应该使用数组操作:

登录置评。

接受的答案

约翰D 'Errico”class=
约翰D 'Errico 2023年5月1日10点
即使你不使用矩阵,线性代数并不意味着无法预期。MATLAB不知道你想做什么。它只是试图执行你告诉它做什么。
你可能会认为你不使用矩阵,但你是谁,当你使用向量。为向量矩阵代数是定义良好的。矩阵和向量只是,只有一行或列。例如,两个向量的点积可以表示为:
X = 1:5;
Y = (2 3 5 7 11);
X * Y '
ans = 106
在这里,MATLAB已经形成了两个向量内积维艰,所以矩阵代数。接下来,我们看到:
X ' * Y
ans = 5×5
2 3 5 6 7 11 4 10 14 22 6 9 15 21 33 8 12 20 28 44 10 15 25 35 55
这是有时被称为外的产品。矩阵代数。
所以当你使用*向量,MATLAB还假设您知道自己在做什么。Abd试图执行,当你写的。
在MATLAB的问题你写什么,它告诉你。这意味着你需要学会使用MATLAB中的虚线运营商,当您想要执行element-wise操作。所以如果你想执行两两元素之间的乘法,然后做到这一点:
x * Y
ans = 1×5
2 6 15 28 55
记住,MATLAB是,一个矩阵的语言。如果你不想让它想矩阵而言,你需要告诉它exctly你想要做什么,而不是假设它能读懂你的心。电脑是出了名的不擅长读心术。(如果电脑能揣摩心思的一天到来,我不知道会是一件好事。)

更多的答案(0)

类别

找到更多的在调整和重塑矩阵帮助中心文件交换

s manbetx 845


释放

R2022b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的