MATLAB中行向量的自动类型转换
Automatic Type conversion of row vector in MATLAB
假设我有一个定义如下的行向量:
x = [5 6.7 8.9]
以上代码生成了一个行向量,其中所有元素都被转换为浮点数(包括第一个索引中的 5)。
x =
5.0000 6.7000 8.9000
有什么方法可以防止 5 的类型转换(首先出现),即有什么方法可以让我的向量如下:
x =
5 6.7000 8.9000
没有5后四位小数。
在 Matlab 和 Octave 中,double
是所有数值的默认值,即使其中一些值可能是整数(整数)。对于数值数组,所有元素必须属于同一类型。
一般来说,您应该将所有数值保留为双精度值,并使用格式化控件(如 printf()
及其朋友提供的控件)按您的需要显示它们。
在这种情况下,您可以这样做:
x = [5 6.7 8.9];
printf('%d %.04f %.04f\n', x);
或者更灵活:
printf('%g ', x); printf('\n');
假设我有一个定义如下的行向量:
x = [5 6.7 8.9]
以上代码生成了一个行向量,其中所有元素都被转换为浮点数(包括第一个索引中的 5)。
x =
5.0000 6.7000 8.9000
有什么方法可以防止 5 的类型转换(首先出现),即有什么方法可以让我的向量如下:
x =
5 6.7000 8.9000
没有5后四位小数。
在 Matlab 和 Octave 中,double
是所有数值的默认值,即使其中一些值可能是整数(整数)。对于数值数组,所有元素必须属于同一类型。
一般来说,您应该将所有数值保留为双精度值,并使用格式化控件(如 printf()
及其朋友提供的控件)按您的需要显示它们。
在这种情况下,您可以这样做:
x = [5 6.7 8.9];
printf('%d %.04f %.04f\n', x);
或者更灵活:
printf('%g ', x); printf('\n');