MATLAB 小知识 第二篇 数据类型

1.函数intmax 和intmin intmax('uint8')   or  intmax('int8')    参数还可以为  ‘uint16’ 'int16' 'uint32' 'int32'  'uint64' 'int64'


2.单精度浮点型(single)可以用函数 realmax 和 realmin 查询得到可以表示的最大整数、最小整数、最大负数、最小负数。
realmax('single')     最大正数
realmin('single')      最小正数
-realmax('single')     最大负数

-realmin('single')     最小负数
注意:在MATLAB中  单精度表示范围; [-realmax,-realmin] U [realmin,realmax]  超出这个范围被认为  “无穷”。
例如:realmax('single') + 0.0001e+038
ans =   Inf
>> -realmax('single') - 0.0001e+038
ans =  -Inf


3.在MATLAB 中默认生成数据为双精度浮点型。

   
4.复数
4.1在复数是双精度浮点数的一种特殊类型。


4.2在matlab中 i  和 j  表示虚数符号。i 和 j 是有特定值的 。所以我们在matlab给变量起名字的时候尽量不用j 和 i 。当我们复制给 i和j时,i和j表示我们给他所赋 的值,当我们不给他赋值时,他表示虚数符号。


4.3    4i(4j)表示一个完成的虚部,不可以在中间加空格,可以写成4*j或者4*i,意思是一样的。


4.4    只有数字才可以与i或者j相连,表达式不行
x = cos(pi/3)i x = cos(pi/3)i             |
Error: Unexpected MATLAB expression. 
>> x = cos(pi/3)*i                     中间有乘号就可以了x =        0 + 0.5000i

           
4.5  函数 real   imag   abs   angle    用来求一个复数的实部、虚部、模和相角。
abs一个负数可以求它的绝对值。


4.6  函数 complex
complex(A,B)   生成 A + Bi   A,B可以为数组、矩阵、标量


5.非数  NaN  (Not a number)  既不是实数也不是复数。如0/0   inf/inf
在matlab中   可以忽略 nan 和NaN  大小写   Inf   和  inf也一样不区分。


6 .  Q = -3:3.  计算  sin(Q)/Q    如何避免除数为0?  可以用  Q = Q + (Q==0)*eps 代替。
Q = -3:3;
sin(Q)./Q
改后:
Q = -3:3;
Q = Q + (Q==0)*eps;
sin(Q)./Q
改前结果:ans =
    0.0470    0.4546    0.8415      <span style="color:#ff6666;"> NaN </span>   0.8415    0.4546    0.0470 注意当Q = O时,结果为NaN
改后结果:ans =
    0.0470    0.4546    0.8415    <span style="color:#ff6666;">1.0000 </span>   0.8415    0.4546    0.0470


7. 逻辑运算
函数 and or not xor 与 或 非 异或
函数 bitand bitor bitcmp bitxor 位与 位或 补码 位异或
例子:
strx = bin2dec('10101');
>> stry = bin2dec('11100')
stry =
    28
>> bitor(strx,stry) 输入为十进制,位或后输出依然为十进制
ans =
    29
>> bitor('10101','11100')
Undefined function 'bitor' for input arguments of type 'char'. 

 注意bitor的输入不可以为char类型


8.短路运算符 && ||
9.matlab中常用运算符号优先级
括号()
转置(.') , 幂(.^) , 复共轭转置(') , 矩阵幂(^)
一元正号(+), 一元负号(-) ,逻辑非(~)
元素点乘(.*) , 元素右除(./) ,元素左除(.\), 矩阵乘(*),矩阵右除(/),矩阵左除(\)
加法(+) ,减法(-)
冒号(:)
关系运算符: 小于(<),小于等于(<=),大于(>),大于等于(>=),等于(==),不等于(~=)
逻辑与(&)
逻辑或(|)
短路逻辑与(&&)
短路逻辑或(||)
PS: 1.对与数组与标量的乘、除 ./ 和/ 没有区别。
       2.matlab中没有逗号运算符,跟c/c++不一样,还有matlab中非是符号~ 在c中为!          还有不等于。
       3.要明白矩阵与数组的区别
                                矩阵                     数组
概念                         数学元素               程序中数据的存储和管理方式
所属领域                  数学线性代数        信息科学
形式                         二维                     一维、二维、多维
包含元素类型           数字                      数字、字符等多种数据类型
在matlab中, 矩阵以数组的形式存在。
10.字符与字符串
函数abs('a') 可以得到a的ASCII的值。 char函数 char(65) 结果为 A. char函数可以查询ASCII数字对应的字符 

11. 字符数组
说明: 字符串可以包含标点符号。 建立二维数组时要求每行字符有相同的列。


11.1 a = ['abc';'abcd';'abcde']
Error using vertcat
Dimensions of matrices being concatenated are not consistent. 每行字符列不同.


11.2 用char函数可以按照最长字符串的长度,自动把长度不够的字符串末尾补空格。


11.3 合并函数 strcat 水平方向    strvcat 垂直方向
strcat 合并时会自动删除每个字符串末尾的空格。 而 [] 却会保留空格。
a = strcat('abc  ','abcd ') 这两个字符串末尾均有两个空格
a =
abcabcd
>> length(a)
ans =
     7
a = ['abc  ','abcd  ']
a =
abc  abcd  
>> length(a)
ans =
    11
函数 strvcat 功能与char相同,如果字符串长度不一致,这会在末尾自动补空格。  


12 字符串比较


 最基本的 == 等号比较会返回一个逻辑向量或者矩阵。
strcmp 比较俩个字符串是否相等 仅返回一个值
strcmp('love','like')
ans =
     0
>> class(ans)
ans =
logical
strcmpi 比较俩个字符串是否相等,不区分大小写. 仅返回一个值 0 or 1。
strncmp 比较俩个字符串的前n个字符是否相等 也返回一个值
strncmpi 比较俩个字符串的前n个字符是否相等 , 不区分的大小写



13 字符串的查找与替换


findstr 在现有字符串中找需要的字符串
strfind 字符串内查找部分字符串
strtok 查找字符串中分隔符
strmatch 查找匹配指定字符串
strrep 替换字符串


14 数值类型转换到字符串


char 把截去小时部分正整数值转换为字符串
int2str 把小数部分四舍五入正、负整数转换为字符类型
mat2str 把数值类型数据转换成指定精度和形式的字符类型,并返回MATLAB可以识别的格式
dec2hex 把正整数转换为十六进制的字符
dec2bin 把正整数转换为二进制的字符类型
dec2base 把正整数转换为任意进制的字符类型


15 字符串类型转换为数值类型


uintN 与abc相似,把字符转换为等值数值类型 N 取值 8、16、32、64
str2num 把字符串转换为等值数值类型
str2doble 与str2num类似,但是提供对字符串元胞的操作
hex2num 把字符串类型数据转换成指定精度和形式的数值类型,并返回MATLAB可以识别的类型
hex2dec 把十六进制字符串转为正整数
bin2dec 把二进制的字符串转为正整数
base2dec 把任意进制的字符类型转为正整数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值