本章将学习以下内容:
1.用户如何在M文件中输入数据
2.用函数disp显示输出结果
3.用函数fprintf输出格式化数据
4.利用图形提供程序输入
5.利用元胞模式修改和运行M文件程序
1. 自定义输入
1)命令行下
输入单个数值
>> z = input('Enter a value:')
Enter a value:5
z =
5
输入一个矩阵
>> z = input('请输入一个矩阵:')
请输入一个矩阵:[1,2,3;3,4,5]
z =
1 2 3
3 4 5
输入字符串:输入字符串是要注意必须加上单引号
>> x = input('输入您的姓名:')
输入您的姓名:'普京'
x =
普京
>>
另外一种办法是在input的第二个输入参数中限定输入为字符串
>> x = input('输入您的姓名:','s')
输入您的姓名:普京
x =
普京
2.输出
1)显示函数,函数disp以单个数组为输入参数,不需要输入矩阵名就可以显示矩阵的值。
>> x = 1:5;
>> disp(x)
1 2 3 4 5
可以将要输出的内容整理起来放在一个列表内,作为列表的元素。各个输出项之间加逗号,这样可以一起输出。注意输出数字是要用函数num2str将数字转化为字符串。
>> disp(['矩阵的值是:',num2str(x)])
矩阵的值是:1 2 3 4 5
【提示】如果字符串中包含引号,则要输入两个引号。否则MATLAB会把单引号看成是字符串的结束标志。
2)使用函数fprintf格式化输出
fprintf类似于C语言中的printf。MATLAB其实是基于C语言的,现在的MATLAB解释器就是基于C语言编写的。
>> cows = 5;
>> fprintf('There are %f cows in the pasture \n',cows)
There are 5.000000 cows in the pasture
唯一与C语言不同的地方是cows前面不再使用 % 。
下表列出了部分类型域的格式:
类型 | 用法 |
---|---|
%f | 定点格式 |
%e | 指数格式 |
%d | 十进制格式 |
%g | 以定点格式和指数格式的最紧凑形式显示 |
%c | 字符格式,每次显示一个字符 |
%s | 字符串格式,显示完整的字符串 |
下表列出了集中特殊的命令格式:
格式命令 | 功能 |
---|---|
%n | 换行 |
%r | 回车 |
%t | 表格 |
%b | 退格 |
格式化形式:比如%8.2f
表示字符显示的最小宽度是8位,小数点后有两位数字。
MATLAB中的fprintf
函数还可以用于输出矩阵:
>> x = 1:5;
>> fprintf('%8.2f\n',x)
1.00
2.00
3.00
4.00
5.00
如果变量是二维矩阵,MATLAB会按列重复执行fprintf命令。先输出第一列,然后是第二列,以此类推。
>> feet = 1:3;
>> inches = feet .* 12;
>> table = [feet;inches]
table =
1 2 3
12 24 36
>> fprintf('%4.0f %7.2f \n',table)
1 12.00
2 24.00
3 36.00
函数fprintf
的第二个输入参数还可以是多个矩阵。MATLAB按照顺序格式化所有矩阵中的每个数值
>> fprintf('%4.0f %7.2f \n',feet,inches)
1 2.00
3 12.00
24 36.00
>>
3.图形输入
命令 ginput 允许用户在图形窗口中任选一点,并将该点的位置转换成确切的x和y的坐标值。
>> [x,y] = ginput(2)
x =
0.7177
0.2270
y =
0.7383
0.4254
>>
选择点时的图形界面如下:
如果不输入n的值,MATLAB会获取按回车键时所对应的点的坐标
>> [x,y] = ginput
x =
0.2846
0.7154
0.6233
y =
0.6126
0.7646
0.4196
>>
例:定义x在5到30之间创建图形,计算y的值。执行ginput函数后,可以在图形中选择需要的点,获得该点的坐标
>> x = 5:30;
>> y = x .^ 2 - 40 .* x + 400;
>> plot(x,y)
>> axis([5,30,-50,250])
>> [a,b] = ginput
a =
20.0058
20.0634
b =
-1.3158
0.4386
>>
4.在M文件中使用元胞模式
用户可以把M文件分为若干个部分,这些部分称为元胞,每一次仅会有一个元胞被执行,这种功能在MATLAB中非常有用。元胞模式也允许用户以不同的格式创建报告,显示程序结果。
在M文件程序中连续输入连个百分号和一个空格就可以把源程序分成若干个元胞。在空格后添加名称元胞分隔符:
%% Cell Name
在双百分号之后必须加入空格,否则会被MATLAB误认为是注释行。
划分好元胞后,单击计算按钮可以对元胞进行单独计算运行,当前元胞或者下一个元胞,甚至对整个文件执行。
利用元胞模式可以生成HTML,WORD,PPT格式的报告。
5.从文件中读写数据
MATLAB 支持导入的数据文件类型有
文本:.mat .dat .txt .csv
其它数据格式:.cdf .fits .hdf
电子表格数据: .xls .wkl
图像数据: .tiff .bmp .jpg .jpeg .gif
音频数据: .au .wav
视频: .avi
导入时可以使用 Import Wizard导入