MATLAB中的数据类型主要包括数值类型、逻辑类型、字符型、函数句柄、结构体和单元数组类型


MATLAB中的数据类型主要包括数值类型、逻辑类型、字符型、函数句柄、结构体和单元数组类型。

数值类型

数值类型主要有整数、单精度浮点数和双精度浮点数。对于运算结果的整数类型溢出的将表示该整数类型最大值或最小值。e表示以10为底的指数。

数据格式:int8、unit8、int16、uint16、int32、uint32、int64和uint64、single、double。

a=uint32(120);b=single(22.809);c=73.226;
%ab=a*b 单精度浮点类型不能与整数类型进行算数运算
ac=a*c; %双精度浮点数和整型进行运算结果为整型
bc=b*c; %双精度浮点数和单精度浮点数进行运算结果为单精度浮点数
eps1=eps(3);%获取与指定数最近的浮点数之间的间隙

复数包括实部和虚部,默认使用i或j表示虚部,常用函数如下:

  • real(z):返回复数z的实部
  • imag(z):返回复数z的虚部
  • abs(z):返回复数z的模
  • angle(z):返回复数z的辐角
  • conj(z):返回复数z的共轭复数
  • complex(a,b):以a为实部,b为虚部创建复数

MATLAB用Inf和-Inf表示正无穷和负无穷,NaN表示非数值量。

逻辑类型

逻辑类型主要有:<、<=、>、>=、== 和 ~=

A=1:9;
B=10-A;
TrueorFalse=(A==B);

字符串

每个字符串占两个字节。

字符串的构造

字符串或字符串数组的构造可以通过直接给变量赋值来实现,具体表达式中字符串的内容需要写在单引号内。如果字符串的内容包含单引号,那么以两个重复的单引号来表示。

函数句柄

函数句柄可以方便名称的管理,也可以加快程序运行的速度。

结构体类型

%通过字段赋值创建结构体
Student1.name='Sam';
Student1.grade=6;
Student1;
%通过struct函数创建结构体struct{'field1',var1,'field2',var,...}
%%Schedule1(1)
ScheduleArray=repmat(struct('Day','Thursday','Time','15:00','Number',18),1,2);
ScheduleArray(1);
ScheduleArray(2);
newArray=struct('Day',{'Thursday','Friday'},'Time',{'15:00','9:00'},'Number',{18,6});
newArray(1);
newArray(2);

数组类型

Array1=[1,2,3,4,5,6,7,8,9];
Array2=1:9;
Array3=1:2:9;
Array4=linspace(0,5,6);

单元数组

每一个单元可以包括任意数组,每个单元的数值类型都可以不同。声明的时候用{},逗号分隔单元,分号分隔行。

CellA = {'x',[1;3;6];10,pi};
CellB = cell(2,2);
CellA{1,1};%{}寻访内容
cellA(1,1);%()寻访单元
%合并单元数组
CellC = {'haha'};
CellD = {CellA;CellC};
%删除指定单元
CellA{1,2}={};

map容器

schedulemap = containers.Map({'Monday','Tuesday','Wednesday','Thursday','Friday'},{'Maths','Chinese','History','Geography','Biology'});
newMap = containers.Map();
remove(schedulemap,'Thursday')

% 添加星期六及对应科目
schedulemap('Saturday') = 'Public elective course';

% 修改Key 必须先删除再添加
remove(schedulemap,'Saturday');
schedulemap('Sunday') = 'MBA';

% 修改values
schedulemap('Monday')='english';
keys(schedulemap);
values(schedulemap);
  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
非常抱歉,我误解了您的问题。下面是将结构转换成字符数组的示例代码,希望能够解决您的问题。 ```c #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { int id; char name[20]; } Student; int main() { Student stu = { 1, "Tom" }; char stuArr[sizeof(Student)]; memcpy(stuArr, &stu, sizeof(stu)); printf("stu.id: %d, stu.name: %s\n", stu.id, stu.name); printf("stuArr[0]: %d, stuArr[1]: %d, stuArr[2]: %d, stuArr[3]: %d, stuArr[4]: %d, stuArr[5]: %d, stuArr[6]: %d, stuArr[7]: %d, stuArr[8]: %d, stuArr[9]: %d, stuArr[10]: %d, stuArr[11]: %d, stuArr[12]: %d, stuArr[13]: %d, stuArr[14]: %d, stuArr[15]: %d, stuArr[16]: %d, stuArr[17]: %d, stuArr[18]: %d, stuArr[19]: %d\n", stuArr[0], stuArr[1], stuArr[2], stuArr[3], stuArr[4], stuArr[5], stuArr[6], stuArr[7], stuArr[8], stuArr[9], stuArr[10], stuArr[11], stuArr[12], stuArr[13], stuArr[14], stuArr[15], stuArr[16], stuArr[17], stuArr[18], stuArr[19]); return 0; } ``` 在上面的示例代码,我们定义了一个`Student`结构,包含学生的ID和姓名两个字段。我们同时定义了一个字符数组`stuArr`,其大小与`Student`结构大小相同。然后,我们使用`memcpy`函数将`Student`结构复制到`stuArr`字符数组。 在输出的时候,我们将`stuArr`数组的每个元素都输出了一遍,以展示数组内容的正确性。 输出结果为: ``` stu.id: 1, stu.name: Tom stuArr[0]: 1, stuArr[1]: 0, stuArr[2]: 0, stuArr[3]: 0, stuArr[4]: 84, stuArr[5]: 111, stuArr[6]: 109, stuArr[7]: 0, stuArr[8]: 0, stuArr[9]: 0, stuArr[10]: 0, stuArr[11]: 0, stuArr[12]: 0, stuArr[13]: 0, stuArr[14]: 0, stuArr[15]: 0, stuArr[16]: 0, stuArr[17]: 0, stuArr[18]: 0, stuArr[19]: 0 ``` 可以看到,`stuArr`数组前四个元素的值为1、0、0、0,分别对应`Student`结构的id字段。后面的元素值分别为84、111、109、0,对应`Student`结构的name字段,其0表示字符串的结束符。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

唐先生的博客

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

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

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

打赏作者

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

抵扣说明:

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

余额充值