转置行向量X以获得Scilab中的兼容尺寸警告

时间:2017-03-28 05:07:35

标签: scilab

我正在学习使用Scilab,我尝试绘制一个我知道在某个值上具有不连续性的函数但是我得到的情节具有不可预期的行为,所以我试图绘制一个非常着名的函数" y = 1 / X"

我创建了" x"向量

x=[-10:1:10];

然后创建了" y"功能

y=1/x;

然后使用了绘图命令

plot(x,y)

我收到了以下警告

  

警告:转置行向量X以获得兼容的维度

我的情节是一条直线,我不知道自己做错了什么。

2 个答案:

答案 0 :(得分:0)

好吧,尝试在consol中输入xy,看看你的变量是怎样的:

-->x
 x  =


         column  1 to 12

  - 10.  - 9.  - 8.  - 7.  - 6.  - 5.  - 4.  - 3.  - 2.  - 1.    0.    1.  

         column 13 to 21

    2.    3.    4.    5.    6.    7.    8.    9.    10.  

-->y
 y  =

  - 0.0129870  
  - 0.0116883  
  - 0.0103896  
  - 0.0090909  
  - 0.0077922  
  - 0.0064935  
  - 0.0051948  
  - 0.0038961  
  - 0.0025974  
  - 0.0012987  
    0.         
    0.0012987  
    0.0025974  
    0.0038961  
    0.0051948  
    0.0064935  
    0.0077922  
    0.0090909  
    0.0103896  
    0.0116883  
    0.0129870  

所以x是一个行数组,而y是一个列数组,这就是为什么scilab抱怨不兼容的维度。要删除警告,您必须转置其中一个阵列,使它们的尺寸相同。你可以做很多地方,例如:

y=1/x';

plot(x',y);

plot(x,y');

注意:在Scilab 5.4.x和早期版本中没有这样的警告,Scilab默默地转换其中一个阵列。

答案 1 :(得分:0)

注意:1 / x计算一些东西,比如1 * pinv(x)而不是数组[1 / x(1),1 / x(2),...]。要获得先前的结果,请使用1。/ x进行元素分析。