1

我正在尝试插入一个方程并绘制它,但我不能,因为我不断收到错误,例如:矩阵尺寸必须一致,或者内部矩阵尺寸必须一致。

http://www4.0zz0.com/2012/11/25/10/272913238.png 这是等式。M 的值为 1 到 6,增量为 0.5。Q 的值为 0 到 1,增量为 0.1。

http://www4.0zz0.com/2012/11/25/10/700692428.png 情节是这样的

 m=1:0.5:6;
 q=0:0.1:1;

我试图将方程分成几部分,这样我插入它会更容易,但最后一部分出现错误

e=q./m(1-sqrt(1-(q./m).^2));

下标索引必须是实数正整数或逻辑数。

4

1 回答 1

1
  1. 遍历和的每个组合mq你想使用ndgrid. 现在,两者mq都是行向量,因此数组操作只会将 的第一个元素m与 的第一个元素相结合q,将第二个元素与第二个元素相结合,依此类推。你想要的是一个二维矩阵,其中m沿一个维度q变化,并沿另一个维度变化。这就是这样ndgrid做的。尝试这个:

    [q, m] = ndgrid(0:0.1:1, 1:0.5:6);
    
  2. 对于下标索引错误消息:问题是乘法与数组访问。在等式 PNG 中,分母的形式是M{…},这意味着M乘以大括号中的值。在您的代码中,您编写m(…),这实际上是一个数组访问——而不是乘法。将其更改为m .* (…)使代码工作。工作版本是:

    e=q./(m.*(1-sqrt(1-(q./m).^2)));
    

    现在,您可以执行以下操作:

    figure; plot(e);
    

    ......你应该得到类似于你想要的输出。

于 2012-11-26T03:20:14.690 回答