绘制长度相同的矢量

时间:2016-02-21 18:01:24

标签: matlab plot linear-algebra

function SS(A,b,x)

sum = A*x+b;

xaxis=linspace(-10,10);
ylabel('y')
xlabel('x')

subplot(1,2,1)
plot(xaxis,sum)
axis([0 1 0 1])

subplot(1,2,2)
plot(xaxis,x)

我收到错误:

  

使用绘图矢量时出错必须具有相同的长度。

     

SS中的错误(第12行)

     

积(x-轴,总和)

我给A矩阵一个2x2和矢量b& x随机2x1向量。我看,它的长度相同。

2 个答案:

答案 0 :(得分:0)

错误位于plot(),而不是输入参数中。如果是的话,Matlab会抛出以下行的错误

sum = A*x+b;

而不是plot()plot()帮助页面显示,如果您执行plot(x,y),则xy必须具有相同的长度,这就是错误原因。如果你没有在linespace()中指定任何第三个参数,它将在你已经提供的两个参数(即上限和下限)之间给出100个均匀间隔的点。确实xaxis的大小为1x100,而变量sum的大小为2x1。

现在值得注意的是:

  • 如果一个是行向量而另一个是列向量并不重要:重要的是它们具有相同的大小(长度)
  • 将变量命名为sum是不好的做法,因为sum()是Matlab中的内置函数。任何其他内置功能也是如此。

答案 1 :(得分:-1)

变量xaxis是2x100数组,而不是2x1数组。

(见http://uk.mathworks.com/help/matlab/ref/linspace.html

您可以使用函数length()或size()来计算数组的大小。在绘图时,我们使用1对1映射,即x中的每个值在y中具有对应的值。