首页 > 解决方案 > “内部矩阵尺寸必须一致” MATLAB 错误

问题描述

我在 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

解决方案


由于 k 是一个向量,因此当您将 k * k 相乘时,您将使用矩阵乘法将 2 个向量相乘。使用矩阵乘法,您将 jxk 大小矩阵乘以 akxl 大小矩阵,并得到 ajxl 结果。

但是在这里,您将 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));

推荐阅读