MATLAB教程_04变数(变量)与档案存取_台大郭彦甫课程笔记
一、变数/变量-string
1、类型
变量类型 | 含义 |
---|---|
double() | 转换为双精度 |
single() | 转换为单精度 |
int8() | 转换为8位有符号整数 |
int16() | 转换为16位有符号整数 |
int32() | 转换为32位有符号整数 |
int64() | 转换为64位有符号整数 |
uint8() | 转换为8位无符号整数 |
uint16() | 转换为16位无符号整数 |
uint32() | 转换为32位无符号整数 |
uint64() | 转换为64位无符号整数 |
p.s.变数形态,当作function使用
2、double 转 integer
>> B=int8(A)
B =
int8
20
3、Character(Char)字元
指定一个Character到一个变数,用一个变数储存,用 单引号 来指定,把变数框在里面。
>> s1 = 'h'
whos
s1 =
'h'
Name Size Bytes Class Attributes
A 1x1 8 double
B 1x1 1 int8
s1 1x1 2 char
>> s1 = 'hex'
s1 =
'hex'
>> whos
Name Size Bytes Class Attributes
A 1x1 8 double
B 1x1 1 int8
s1 1x3 6 char
>> s1 = 'h'
whos
uint16(s1)
s1 =
'h'
Name Size Bytes Class Attributes
A 1x1 8 double
B 1x1 1 int8
s1 1x1 2 char
ans =
uint16
104
>> s2 = 'H'
whos
uint16(s2)
s2 =
'H'
Name Size Bytes Class Attributes
A 1x1 8 double
B 1x1 1 int8
ans 1x1 2 uint16
s1 1x1 2 char
s2 1x1 2 char
ans =
uint16
72
4、String 多字元
宣告:
s1 = 'Example';
s2 = 'String';
s3 = [s1 s2];
s4 = [s1; s2]; %加分号,变矩阵
=============================
>> s1 = 'Example';
s2 = 'String';
>> s3 = [s1 s2]
s3 =
'ExampleString'
>> s4 = [s1; s2]
错误使用 vertcat
要串联的数组的维度不一致。
%字符串长度不一样,不能放在一个矩阵中
5、逻辑运算和分配
许多数字和逻辑运算符可以应用于字符串
>> str = 'aardvark';
>> str(3)
ans =
'r'
>> str = 'aardvark';
>> 'a' == str
ans =
1×8 logical 数组
1 1 0 0 0 1 0 0
%每个位置分别做逻辑运算
>> str(str == 'a') = 'Z'
str =
'ZZrdvZrk'
%完成的功能是:将 a 都换为 Z
- 练习1:
练习:比较整个string和’aardvark’是否相等
提示:strcmp-比较字符串
str_input = input('Please enter an 8-bit string: ','s');
str_judge = isempty(str_input);
str = 'aardvark';
if str_judge == 1
disp('Invalid input');
else
for i = 1:8
result = str_input(i) == str(i);
disp(result);
i = i+1;
end
end
============================================
>> class04_practice1
Please enter an 8-bit string: asdfghjk
1
0
0
0
0
0
0
1
- 练习2:编写一个脚本来反转任何给定的字符串
s1=‘I like the letter E’
↓↓
s2=‘E rettel eht ekil I’
str_input = input('Please enter a string: ','s');
str_judge = isempty(str_input);
n = length(str_input);
%length函数用来计算字符串的长度
if str_judge == 1
disp('Invalid input');
else
str = str_input;
for i = 1:n
str(n-i+1) = str_input(i);
i = i+1;
end
end
disp(str);
==============================================
>> class04_practice2
Please enter a string: I like the letter E
E rettel eht ekil I
二、变数/变量-structure
•一种存储异构数据的方法
•结构包含称为字段的数组
1、宣告举例——学生作业成绩:
1)基本
student.name = 'John Doe';
student.id = 'jdo2@sfu.ca';
student.number = 301073268;
student.grade = [100, 75, 73;