【问题标题】:"Inner matrix dimensions must agree" MATLAB error“内部矩阵尺寸必须一致” MATLAB 错误
【发布时间】:2018-06-08 16:12:05
【问题描述】:

我在 Matlab 中使用以下等式:

k=10e-10:0.01:1.5;
Ck2=(0.5*((i*k+0.135)*(i*k+0.651)))./((i*k+0.0965)*(i*k+0.4555));
plot(k,imag(Ck2));
plot(k,real(Ck2));

我没有定义“i”,所以 MATLAB 假设我的方程中是一个虚数,正如预期的那样。我正在尝试根据 k 的范围绘制方程的实部和虚部。

我收到一条错误消息:内部矩阵尺寸必须一致。我已经尝试使用“。”乘法运算符之前的运算符将每个元素相乘,但我没有成功。任何帮助将不胜感激。

先谢谢你了。

【问题讨论】:

  • 你应该试试 .*?
  • 我试过了,但没有用。它说“意外的 MATLAB 运算符”
  • 嗯,我会测试,你把它放在我放在解决方案中的地方吗?
  • 它对我来说工作正常,你写的像我下面这样吗?
  • @fileyfood500 现在可以使用了!谢谢你。我会接受解决方案:)

标签: matlab


【解决方案1】:

由于 k 是一个向量,所以当您将 k * k 相乘时,您就是使用矩阵乘法将 2 个向量相乘。使用矩阵乘法,您将一个 j x k 大小的矩阵乘以一个 k x l 大小的矩阵,并得到一个 j x l 结果。

但在这里,您将 1 x 150 乘以 1 x 150,因此尺寸不适合正确的矩阵乘法。相反,使用 .* 将在每个元素之间执行成对相乘。

试试这个:

k = 10e-10:0.01:1.5;  % 1 x 150 length vector
Ck2= (0.5*((i*k+0.135) .* (i*k+0.651))) ./ ((i*k+0.0965) .* (i*k+0.4555));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多