MATLAB整数型、浮点型和逻辑型数据之间的运算
1、第一,输入以下代码:
close all; clear all; clc
a = int32(15); b = uint32(10);
c = single(7.9); d = double(pi);
f = 'hello';

2、第二,保存和运行上述代码后,在命令窗口输入whos,得到如下结果:
Name Size Bytes Class Attributes
a 1x1 4 int32
b 1x1 4 uint32
c 1x1 4 single
d 1x1 8 double
f 1x5 10 char
也就是说,a为有符号32位整数,b为无符号32位整数,c为单精度浮点数,d为双精度浮点数,f为字符型变量。

3、第三,下面开始整数、浮点数、字符型变量之间的运行。首先是有符号32位整数a,与无符号32位整数b,单精度浮点数c之间的运算。在命令行窗口输入:one = a*b,two = a*c;然后回车出现以下结果:
整数只能与相同类的整数或标量双精度值组合使用。可见整数型与整数型变量之间的运算要是相同的整数类型,整数型与单精度浮点数也不能运算。

4、第四,在命令行窗口输入three = a*d,然后回车得到如下结果:
three =47
然后输入whos three查看three的数据类型:
Name Size Bytes Class Attributes
three 1x1 4 int32
可见,整数型可以与双精度浮点数运算,得到结果仍是整数型。

5、第五,在命令行输入four = a*f,five = c*d,six = c*f,seven = d*f,然后回车得到如下结果:
>> four = a*f
错误使用 .*
整数只能与相同类的整数或标量双精度值组合使用。
>> five = c*d
five =24.8186
>> six = c*f
six =821.6000 797.9000 853.2000 853.2000 876.9000
>> seven = d*f
seven =326.7256 317.3009 339.2920 339.2920 348.7168
可见,整数型与不同与字符型变量预算,单精度浮点数可以与双精度浮点数做运算,双精度浮点数可以与字符型变量做运算。

6、第六,在命令行输入whos five six seven,回车得到如下结果:
Name Size Bytes Class Attributes
five 1x1 4 single
seven 1x5 40 double
six 1x5 20 single
可见单精度与双精度运算是单精度,单精度与字符型运算也是单精度,双精度与字符型运算是双精度。
