数据的输入 input
》》 A=input(‘请输入变量A的值:’)
请输入变量A的值:[1:3;4:6;7:9]
A = //后面的矩阵是自己在键盘上输入的
1 2 3
4 5 6
7 8 9
数据的输出 disp
》》 s=‘Hello world’;
》》 disp(s)
Hello world
》》 A=input(‘请输入变量A的值:’);
请输入变量A的值:[1:3;4:6;7:9]
》》 disp(A)
1 2 3
4 5 6
7 8 9
程序暂停可以用pause函数:
pause(延迟秒数)
另外,在程序执行过程中要强制中止程序的运行,可以用Ctrl+C命令。
下面建立脚本文件来运行一个程序。
脚本文件内容如下:
A=input(‘输入矩阵A:’);
B=input(‘输入矩阵B:’);
C=A*B;
disp(‘矩阵A和矩阵B相乘的结果为:’);
disp(C);
将其命名为chengtest,存储在Matlab/bin目录下,存储为chengtest.m文件,在命令行窗口下进行测试:
》》 chengtest
输入矩阵A:eye(3) //eye(3)是单位阵
输入矩阵B:[1:3;4:6;7:9]
矩阵A和矩阵B相乘的结果为:
1 2 3
4 5 6
7 8 9
除了脚本文件,Matlab中还有一种函数文件,比较一下二者的不同:
function C = chengtest2(A,B) //声明,开头
C=A*B; //函数真正部分
end //结尾
因此文件要对应的命名为chengtest2,存储为chengtest2.m形式的文件。在命令行窗口下进行测试:
》》 A=eye(3);
》》 B=[1:3;4:6;7:9];
》》 C=chengtest2(A,B)
C =
1 2 3
4 5 6
7 8 9
if语句
1. 单分支if语句
if 条件
语句组
end
2. 双分支if语句
if 条件
语句组1
else
语句组2
end
3. 多分支if语句
if 条件1
语句组1
elseif 条件2
语句组2
……
elseif 条件m
语句组m
else
语句组n
end
当条件结果为标量时,同C语言,非0 表示条件成立,0表示条件不成立。
当条件结果为矩阵时,如果矩阵非空且不包含0元素,则条件成立,否则条件不成立。
例如:[1,2;0,4]表示条件时,条件不成立;[1,2;3,4]表示条件时,条件成立。
例1:输入一个整数,若为奇数则输出其平方根,否则输出其立方根。
x=input(‘请输入x的值:’);if rem(x,2)==1 y=sqrt(x);else y=x^(1/3);endy 以上是脚本文件中的内容,并将该脚本文件命名为if1,在命令行窗口进行执行。
》》 if1请输入x的值:8y = 2》》 if1请输入x的值:9y = 3 例2:输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应数的平方,若为其他字符则原样输出。
c=input(‘请输入一个字符:’,‘s’); //后面的‘s’表示格式控制,强制其是字符赋给变量cif c》=‘A’&&c《=‘Z’ disp(lower(c))elseif c》=‘a’&&c《=‘z’ disp(upper(c))elseif c》=‘0’&&c《=‘9’ disp(str2double(c)^2) //str2double 字符变double型else diso(c)end 将该脚本文件命名为if2,在命令行窗口执行如下:
》》 if2请输入一个字符:aA》》 if2请输入一个字符:8 64
switch语句
switch 表达式
case 结果1
语句组1
case 结果2
语句组2
……
case 结果m
语句组m
otherwise
语句组n
end
切记:case 结果和语句组不能放在同一行,要放在分开的两行。
switch表达式应该是一个其值可以列举的表达式。
case结果表为 switch表达式的取值,当取值有多个时,用单元数据表示
和C最大的不同就是,不需要break了,Matlab中不会默认向后执行。
例3:读程序
脚本文件switch1.m如下:
x=input(‘x=’);
switch fix(x)
case 2
disp(111);
case 2
disp(222);
case {3,4,5} //这里和C也有不同,可以用集合表示取值有多个的情况。
disp(333);
otherwise disp(444);
end
在命令行窗口进行执行进行测试:
》》 switch1
x=2
111 //可以看出虽然有两个case 2,但后者出现的已经没用了。
》》 switch1
x=3
333
》》 switch1
x=4
333
》》 switch1
x=9
444
表示多个取值对应一个case时,上面代码中的case {3,4,5} 中的{3,4,5} 实际上是一个cell数组。
一般矩阵是通过 A=[1,2,3,4,5];创建的,使用中括号[ ]。而cell数组是通过{ }大括号创建的。 A={1,2,3,4,5}
例4:输入一个英文单词,判断它是否以元音字母开头。
c=input(‘请输入一个英文单词:’,‘s’);
switch c(1)
case {‘A’,‘E’,‘I’,‘O’,‘U’,‘a’,‘e’,‘i’,‘o’,‘u’}
disp(‘该单词以元音字母开头’);
otherwise
disp(‘该单词以辅音字母开头’);
end
脚本文件switch2.m如上,下面在命令行窗口进行测试:
》》 switch2
请输入一个英文单词:bear
该单词以辅音字母开头
》》 switch2
请输入一个英文单词:apple
该单词以元音字母开头
脚本文件如下:
》》 strfindcpp
请输入一个英文单词:apple
该单词以元音字母开头
》》 strfindcpp
请输入一个英文单词:bear
该单词以辅音字母开头
下面在命令行窗口进行测试:
》》 strfindcpp
请输入一个英文单词:apple
该单词以元音字母开头
》》 strfindcpp
请输入一个英文单词:bear
该单词以辅音字母开头
strfind函数中前面是主串,后面是子串,当子串不在主串中时,返回空矩阵 [ ] ,当子串在主串中时,返回子串第一个字母在主串中的下标。
例5 PM2.5是指大气中直径小于或等于2.5微米的可入肺颗粒物是衡量空气质量的重要指标。假定空气质量等级以PM2.5数值划分为6级。
PM2.5数值在[0,35)空气质量为优,[35,75)为良,[75,115)为轻度污染,[115,150)为中度污染,[150,250)为重度污染,大于等于250为严重污染。
编写程序,输入PM2.5的数值(假设均为整数),输出空气质量等级。
g=input(‘请输入PM2.5的值:’);
switch fix(g)
case num2cell(0:34)
disp(‘空气质量优’);
case num2cell(35:74)
disp(‘空气质量良好’);
case num2cell(75:114)
disp(‘轻度污染’);
case num2cell(115:149)
disp(‘中度污染’);
case num2cell(150:249)
disp(‘重度污染’);
otherwise
disp(‘严重污染’);
end //经过实践,case语句和下面的disp语句一定不能放在同一行,不然会出错。
脚本文件PM25.m如上,下面在命令行窗口进行测试:
》》 PM25
请输入PM2.5的值:115
中度污染
》》 PM25
请输入PM2.5的值:250
严重污染
辨析:
》》 num2cell(0:5)
ans =
1×6 cell 数组
{[0]} {[1]} {[2]} {[3]} {[4]} {[5]}
》》 (0:5)
ans =
0 1 2 3 4 5
》》 [0:5]
ans =
0 1 2 3 4 5
》》 num2cell[0:5]
num2cell[0:5]
↑
错误: 圆括号或方括号不对称或异常。