MATLAB提供的数据类型

数据类型

1、逻辑型(logical)

该类型变量值为1或0、true或false。

2、字符型(char)

(1)字符型的创建

Matlab的字符型输入需使用单引号,字符串存储为字符数组,每个元素占一个ASCII字符。
在这里插入图片描述
维度必须相同,可以用空格补齐。
在这里插入图片描述
在这里插入图片描述

(2)字符串比较:

strcmp(str1,str2): 比较两个字符串是否一样,一样返回1,否则返回0。
strncmp(str1,str2,m): 比较两个字符串前m个字符是否一样,一样返回1,否则返回0。
在这里插入图片描述
==: 逐一比较每个字符,其他的也一样
在这里插入图片描述

(3)字符串的聚合:

int2str(m): m为整型
sprintf(%d,m): 和C一样
strcat(str1,str2): 两个字符串结合,可多个字符串
在这里插入图片描述

在这里插入图片描述

(4)字符串的搜索和替换

newStr = strrep(str,old,new) : 将 str 中出现的所有 old 都替换为 new。
在这里插入图片描述
findstr(s1,s2): 在较长的字符串中查找较短的字符串出现的次数,并返回其位置,因此无论s1,s2哪个为长字符串,位置在前在后都没有关系。
在这里插入图片描述

strtok(str): 从左到右解析 str,使用空白字符作为分隔符,并返回部分或全部文本。
在这里插入图片描述

strvcat(str1,str2,…): 垂直连接多个字符串
在这里插入图片描述

3、数值型(numeric)

format rat

rat:用分数表示
hex:16进制表示
short:短型,小数点后保留4位
long:长型,double 15位,single 7位
shortE:短的科学计数法表示,小数点后面保留4位
longE:长的科学计数法表示,double 15位,single 7位

(1)整型
  • 有符号整数(int8,int16, int32 ,int64)
  • 无符号整数(uint8,uint16, uint32 ,uint64) 
    其中u为Unsigned的缩写。

取整函数:

  • 向下取整floor

a=floor(3.6) %结果为3

  • 向上取整ceil

a=ceil(3.4) %结果为4

  • 取最接近的整数round

a=round(3.5) %结果为4
a=round(3.4) %结果为3

  • 向0取整fix

a=fix(3.9) %结果为3

(2)浮点型
  • 单精度浮点型(single)
    single不能与整数进行直接运算。在这里插入图片描述

  • 双精度浮点型(double)
    double与其他类型的运算结果由其他数据类型决定。
    在这里插入图片描述

(3)复数型

i或j为虚部标志

  • complex(a,b)为构造函数 a为实部 b为虚部
  • real()为返回实部
  • abs()为返回模
  • conj()为返回共轭复数
    在这里插入图片描述

在这里插入图片描述

4、元胞数组(cell)

Matlab的元胞数组可存储任意类型和维度的数组。访问元胞数组的变量需使用大括号{}。

(1)创建单元数组
通过索引赋值创建:

在这里插入图片描述

在这里插入图片描述

cell函数创建,再通过赋值语句赋值

在这里插入图片描述
在这里插入图片描述

(2)获取单元数组的内容

B(1,1) % 获取1,1位置的内容
B(: ) %获取全部

(3)单元数组的重塑和删除

reshape(A,m,n): m x n为元素A的维度
在这里插入图片描述
在这里插入图片描述

5、结构体(structure)

和C语言类似,一个结构体可以通过不同字段存储不同类型的数据。
直接赋值方式创建:

student.name={‘张三’,‘李四’,‘王五’};
student.age={‘18’,‘16’,‘19’};
student

student =
包含以下字段的 struct:
name: {‘张三’ ‘李四’ ‘王五’}
age: {‘18’ ‘16’ ‘19’}

用struct函数创建:

student=struct(‘name’,‘Jason’,‘class’,‘class 3’,‘results’,{‘English’,‘Maths’;85,95},‘system’,[1,2,3;4,5,6;7,8,9]);
student

student =
包含以下字段的 2×2 struct 数组:
name
class
results
system

6、表格(table)

表格可以包含不同类型的数组,用于存储表格类的数据。

(1)使用table函数创建表

ID={‘1’;‘2’;‘3’;‘4’};
Name={‘张三’;‘李四’;‘杨二’;‘王五’};
Age=[18;19;20;17];
T=table(Name,Age,‘RowNames’,ID)

T =

4×2 table

Name Age
______ ___

1 ‘张三’ 18
2 ‘李四’ 19
3 ‘杨二’ 20
4 ‘王五’ 17

T=table(ID,Name,Age)

T =

4×3 table

ID Name Age
___ ______ ___

‘1’ ‘张三’ 18
‘2’ ‘李四’ 19
‘3’ ‘杨二’ 20
‘4’ ‘王五’ 17

(2) 表的运算

intersect(table1,table2): 求两个表的交集
setdiff(table1,table2): 差集 属于1,不属于2
==union(table1,table2):==并集

(3)表的转换

array2table(A): 将数组转换为表
table2array(T): 将表转换为数组
在这里插入图片描述

A=[ 1 2 3 ; 4 5 6 ; 7 8 9];
T=array2table(A)

T =

3×3 table

A1 A2 A3
__ __ __

1 2 3
4 5 6
7 8 9

7、函数句柄(function handle)

函数句柄可用于间接调用一个函数的Matlab值或数据类型。

句柄的使用格式:
变量名=@(输入参数列表)运算表达式

例如计算一个数的平方可以写成如下格式:
mysqr=@(x)x.*x;

%第一个(x)为输入的参数,而后面 x.* x 则为数学意义上的x^2; 因为matlab默认的计算单位为矩阵,所以对于加减乘除计算,matlab分别对应 “ .* ”和“ * ”

.m文件中:
function f=myfun(x)
f=-(3-2.*x).^2. * x;

命令行:

x=fminbnd (@myfun,0,1.5)

x =

0.500014061731714

[x,fv]=fminbnd (@myfun,0,1.5)

x =

0.500014061731714

fv =

-1.999999998813617

fplot(@(x) (3-2.*x).^2. * x)

在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫余

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值