一、变量的类型转换
比如:将变量类型转换int8
1.char字符
ASCLL码:
2.string
(1)字符串连接方式一
(2)字符串连接方式二
3. 逻辑操作与赋值
(1)字符串数组
(2)字符比较(每个位置分别做逻辑运算)
(3)字符串与字符串的比较
说明:tf= strcmp(s1,s2)
比较 s1
和 s2
,如果二者相同,则返回 1
(true
),否则返回 0
(false
)。如果文本的大小和内容相同,则它们将视为相等。返回结果 tf
的数据类型为 logical
。输入参数可以是字符串数组、字符向量和字符向量元胞数组的任何组合
练习:将s1 = 'I like the letter E';转换为s2 = 'E rettel eht ekil I';
方法一:
方法二:
解释:
二、结构体数组
(1)构建结构体
代码:
>> student.name = 'wang';
>> student.id = 'sak@as.com';
>> student.number = 1231515;
>> student.grade = [100,200,300]
student =
name: 'wang'
id: 'sak@as.com'
number: 1231515
grade: [100 200 300]
>> student.grade
ans =
100 200 300
(2)如何构建第二个学生的信息?
代码如下:
(3)如何找到student(2).grade矩阵里面的 90?
(4)结构体的功能
比如:
>> fieldnames(student)%抓出student这个结构体或者可以说抓出字段名
ans =
'name'
'id'
'number'
'grade'
>> rmfield(student,'id')%从结构体student中删除'id'这个字符安
ans =
1x2 struct array with fields:
name
number
grade
(5) 嵌套结构体
>> A = struct('data', [3 4 7; 8 0 1], 'nest', ...
struct('testnum','Test 1', ...
'xdata', [4 2 8],'ydata', [7 1 6]));
A(2).data = [9 3 2; 7 6 5];
A(2).nest.testnum = 'Test 2';
A(2).nest.xdata = [3 4 2];
A(2).nest.ydata = [5 0 9];
A.nest
ans =
testnum: 'Test 1'
xdata: [4 2 8]
ydata: [7 1 6]
ans =
testnum: 'Test 2'
xdata: [3 4 2]
ydata: [5 0 9]
>>
A
A =
1x2 struct array with fields:
data
nest
>> A(1)
ans =
data: [2x3 double]
nest: [1x1 struct]
>>
三、元胞数组
(1)用{ }声明元胞数组
(2)第一种方式:
第二种方式:
(3) Matlab是如何做得呢?
1.元胞数组中每个条目都拥有一个指针去指向一个数据结构
2.相同元胞数组中的不同单元可以指向不同的数据结构
练习:
代码:
>> B{1,1}='This is the first cell';
B{1,2}=[5+j*6 4+j*5];
B{2,1}=[1 2 3;4 5 6;7 8 9];
B{2,2}={'Tim','Chris'};
>> B
B =
'This is the first cell' [1x2 double]
[3x3 double] {1x2 cell }
>>
(4)访问单元阵列
>> B{2,2}
ans =
'Tim' 'Chris'
>> B{2,1}
ans =
1 2 3
4 5 6
7 8 9
%如何得到上面这个矩阵中的元素 1 7 3呢?
>> B{2,1}(1)
ans =
1
>> B{2,1}(3)
ans =
7
>> B{2,1}(1,3)
ans =
3
>>
(5)cell元胞数组函数
如:num2cell
magic:
mat2cell:
num2cell:
四、多维数组
(1)cat
如1:
如2:
如3:
(2)reshape
练习:
>> A = [1:3;4:6];
>> B = reshape(A,3,2);
>> A
A =
1 2 3
4 5 6
>> B
B =
1 5
4 3
2 6
>>
(3)检查变量和变量的状态