转置行向量 X 以获得 Scilab 中的兼容尺寸警告
Transposing row vector X to get compatible dimensions warning in Scilab
我正在学习使用 Scilab,我尝试绘制一个我知道在某个值处有不连续性的函数,但我得到的图有一个不可预期的行为,所以我尝试绘制一个非常知名的函数 "y=1/x".
我创建了 "x" 矢量
x=[-10:1:10];
然后创建 "y" 函数
y=1/x;
然后使用绘图命令
plot(x,y)
我收到以下警告
WARNING: Transposing row vector X to get compatible dimensions
而且我的剧情是一条直线,我也不知道哪里做错了
好吧,尝试在控制台中输入 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 默默地转置了其中一个数组。
注意:1/x 计算一些类似 1*pinv(x) 的东西,而不是数组 [1/x(1),1/x(2),...]。要获得先前的结果,请使用 1 ./x 进行元素明智的划分。
我正在学习使用 Scilab,我尝试绘制一个我知道在某个值处有不连续性的函数,但我得到的图有一个不可预期的行为,所以我尝试绘制一个非常知名的函数 "y=1/x".
我创建了 "x" 矢量
x=[-10:1:10];
然后创建 "y" 函数
y=1/x;
然后使用绘图命令
plot(x,y)
我收到以下警告
WARNING: Transposing row vector X to get compatible dimensions
而且我的剧情是一条直线,我也不知道哪里做错了
好吧,尝试在控制台中输入 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 默默地转置了其中一个数组。
注意:1/x 计算一些类似 1*pinv(x) 的东西,而不是数组 [1/x(1),1/x(2),...]。要获得先前的结果,请使用 1 ./x 进行元素明智的划分。