插入图像并将其绘制成MATLAB

时间:2012-11-26 02:49:11

标签: matlab plot equation

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

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));

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

1 个答案:

答案 0 :(得分:1)

  1. 要迭代mq的每个组合:您想使用ndgrid。现在,mq都是行向量,因此数组式操作只会将m的第一个元素与q的第一个元素,第二个元素与第二个元素,等等。你想要的是一个2D矩阵,其中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);
    

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