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

问题描述 投票:0回答:2

我正在学习使用 Scilab,我尝试绘制一个函数,我知道该函数在某个值处具有不连续性,但我得到的图具有不可预期的行为,所以我尝试绘制一个非常知名的函数“y=1/x” .

我创建了“x”向量

x=[-10:1:10];

然后创建“y”函数

y=1/x;

然后使用plot命令

plot(x,y)

我收到以下警告

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

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

scilab
2个回答
0
投票

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


0
投票

好吧,尝试在控制台中输入

x
y
,看看你的变量是什么样子的:

-->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 默默地转置了其中一个数组。

© www.soinside.com 2019 - 2024. All rights reserved.