转载请注明来自:黄朝辉的博客
前言
MATLAB是一个包括数据结构、函数、控制流、输入输出和面向对象特性的高级语言。
快速入门
下面是一个快速入门的例子。
>> a = 12;
>> b = 20;
>> c = a + b;
>> c
c =
32
>>
对,就是这么简单,这是直接在命令行窗口中进行编程。
下面我们通过建立一个M-File来实现它。
选择新建 脚本
输入以下内容
function c = add(a,b)
c = a+b;
保存一个文件名默认为add.m即可。
关闭文件,在命令行窗口中输入以下名称即可调用。
>> c=add(12,10)
c =
22
>>
简单吧,好了现在应该说下这个M文件了。
两种M文件
M文件即可是一个简单的,用来执行一系列MATLAB语句的脚本,也可以是一个有着输入输出功能函数,就像上面的那个例子所示。(输入:a、b,输出:c)。
由此,有两种M文件,比较如下表所示:
脚本M文件 | 函数M文件 |
---|---|
既不接受输入也不返回输出 | 可接受输入和返回输出 |
在工作空间对数据进行处理 | 默认情况下变量属于函数内部 |
主要用来执行一系列需要执行很多次的操作 | 主要用来扩展自己应用程序 |
下面给出一个脚本的列子:
fingerImg=imread('finger_noise.jpg');
for i =1:4
figure;imshow(fingerImg);
pause
end
这个脚本只读入一张图片,然后根据用户的操作,将图片绘制四次。
函数M文件的组成
一个函数M文件由五部分组成:函数定义行、H1行、帮助文本、函数体和注释。
下面为一个求平均数的函数代码:
function y = average(x)
% AVERAGE Mean of vector elements.
% AVERAGE(X), where X is a vector, is the mean of vector elements.
% Non-vector input results in an error.
[m,n] = size(x);
if (~((m == 1) | (n == 1)) | (m == 1 & n == 1))
error('Input must be a vector')
end
y = sum(x)/length(x); % Actual computation
在上面的函数中,函数第一行function y = average(x)
即为函数定义行。
x为输入参数,average为函数名,y是输出参数,
H1行为:% AVERAGE Mean of vector elements.
这个H1行是紧跟在函数定义行后的注释行的第一行。当在命令行窗口中输入help 函数名
,这一行会出现在提示内容的第一行。
以下:
% AVERAGE(X), where X is a vector, is the mean of vector elements.
% Nonvector input results in an error.
为帮助文本主要用来说明函数的功能,以%
开头。
函数体为:
[m,n] = size(x);
if (~((m == 1) | (n == 1)) | (m == 1 & n == 1)) % Flow control
error('Input must be a vector') % Error message display
end
y = sum(x)/length(x); % Computation and assignment
是用来实现函数功能的MATLAB代码。
所有以%
开头的均为注释行,只不有些成为了函数的特定部分而已,就像那个H1行一样。注释行可以出现在一个函数的任意位置。
查看M文件内容
在命令行窗口,当你想要查看一个M文件的内容时,输入type 函数名
即可。
>> type add
function c = add(a,b)
c = a+b;