该类型变量值为1或0、true或false。
Matlab的字符型输入需使用单引号,字符串存储为字符数组,每个元素占一个ASCII字符。
维度必须相同,可以用空格补齐。
strcmp(str1,str2): 比较两个字符串是否一样,一样返回1,否则返回0。
strncmp(str1,str2,m): 比较两个字符串前m个字符是否一样,一样返回1,否则返回0。
==: 逐一比较每个字符,其他的也一样
int2str(m): m为整型
sprintf(%d,m): 和C一样
strcat(str1,str2): 两个字符串结合,可多个字符串
newStr = strrep(str,old,new) : 将 str 中出现的所有 old 都替换为 new。
findstr(s1,s2): 在较长的字符串中查找较短的字符串出现的次数,并返回其位置,因此无论s1,s2哪个为长字符串,位置在前在后都没有关系。
strtok(str): 从左到右解析 str,使用空白字符作为分隔符,并返回部分或全部文本。
strvcat(str1,str2,…): 垂直连接多个字符串
format rat
rat:用分数表示
hex:16进制表示
short:短型,小数点后保留4位
long:长型,double 15位,single 7位
shortE:短的科学计数法表示,小数点后面保留4位
longE:长的科学计数法表示,double 15位,single 7位
取整函数:
a=floor(3.6) %结果为3
a=ceil(3.4) %结果为4
a=round(3.5) %结果为4
a=round(3.4) %结果为3
a=fix(3.9) %结果为3
i或j为虚部标志
Matlab的元胞数组可存储任意类型和维度的数组。访问元胞数组的变量需使用大括号{}。
B(1,1) % 获取1,1位置的内容
B(: ) %获取全部
和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
表格可以包含不同类型的数组,用于存储表格类的数据。
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
intersect(table1,table2): 求两个表的交集
setdiff(table1,table2): 差集 属于1,不属于2
==union(table1,table2):==并集
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
函数句柄可用于间接调用一个函数的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)