我正在学习使用 Scilab,我尝试绘制一个函数,我知道该函数在某个值处具有不连续性,但我得到的图具有不可预期的行为,所以我尝试绘制一个非常知名的函数“y=1/x” .
我创建了“x”向量
x=[-10:1:10];
然后创建“y”函数
y=1/x;
然后使用plot命令
plot(x,y)
我收到以下警告
警告:转置行向量 X 以获得兼容的维度
我的情节是一条直线,我不知道我做错了什么。
注意:1/x 计算诸如 1*pinv(x) 之类的东西,而不是数组 [1/x(1),1/x(2),...]。要获得先前的结果,请使用 1 ./x 进行元素除法。
好吧,尝试在控制台中输入
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 默默地转置了其中一个数组。