第5章 Matlab简易使用之常用编程语句
5.1 初学者重要提示
学习本章节前,务必优先学习第4章。
Matlab的编程语句类似C,只是比C更加宽松。
5.2 Matlab控制流
5.2.1 Matlab条件控制if,else,switch
下面我们通过三个简单的例子来说明这三个函数的使用。
If和else语句的使用
a = randi(100, 1);if a 《 30 disp(‘small’)elseif a 《 80 disp(‘medium’)else disp(‘large’)end 命令窗口输出结果如下:

switch语句的使用
a = randi(100, 1);
if a 《 30
disp(‘small’)
elseif a 《 80
disp(‘medium’)
else
disp(‘large’)
end
命令窗口输出结果如下:

在这里顺便介绍一个类似于C语言中scanf的函数input并配合上面的if else实现一个小功能:
yourNumber = input(‘Enter a number: ’);
if yourNumber 《 0
disp(‘Negative’)
elseif yourNumber 》 0
disp(‘Positive’)
else
disp(‘Zero’)
end
运行上面代码后,我们在命令窗口输入数字22,输出结果如下:

5.2.2 Matlab循环控制for, while, continue, break
这里我们也通过几个简单的例子来说明这几个函数的使用。
for语句的使用
for n = 3:32
r(n) = rank(magic(n));
end
r
命令窗口输出结果如下:

while语句的使用
a = 0; fa = -Inf;
b = 3; fb = Inf;
while b-a 》 eps*b
x = (a+b)/2;
fx = x^3-2*x-5;
if sign(fx) == sign(fa)
a = x; fa = fx;
else
b = x; fb = fx;
end
end
x
命令窗口输出结果如下:

continue语句的使用
fid = fopen(‘magic.m’,‘r’);
count = 0;
while ~feof(fid)
line = fgetl(fid);
if isempty(line) || strncmp(line,‘%’,1) || ~ischar(line)
continue
end
count = count + 1;
end
fprintf(‘%d linesn’,count);
fclose(fid);
命令窗口的输出结果如下:

break语句的使用
a = 0; fa = -Inf;
b = 3; fb = Inf;
while b-a 》 eps*b
x = (a+b)/2;
fx = x^3-2*x-5;
if fx == 0
break
elseif sign(fx) == sign(fa)
a = x; fa = fx;
else
b = x; fb = fx;
end
end
x
命令窗口输出结果如下:

5.2.3 Matlab矢量化
对于matlab而言,要想加快算法的执行速度可以通过算法的矢量化来实现,比如要实现如下的功能。
x = .01;
for k = 1:1001
y(k) = log10(x);
x = x + .01;
end
但是我们矢量化后,将更加方便和容易实现。
x = .01:.01:10;
y = log10(x);
但是有一点大家要特别注意,不是什么程序矢量化都能加快执行速度,要视具体情况而定。
5.3 Matlab中help功能的使用
关于matlab入门方面的东西就跟大家将这么多,基本上有这些基础就够了,后面遇到什么问题在网上查找资料即可。也可以查看matlab本身的help帮助文档。

如果有不懂的函数,可以直接在命令窗口输入help 再加上函数即可,比如输入:

5.4 总结
Matlab方面的教程就跟大家讲这么多,后面需要那方面知识的时候,我们再具体的补充。学会这些基本的操作就可以入门了。永远要记住,Matlab只是个工具,我们只需把它当个工具来用,没有必要花大量的时间去研究,入门后用什么学什么即可。
第5章 Matlab简易使用之常用编程语句
5.1 初学者重要提示
学习本章节前,务必优先学习第4章。
Matlab的编程语句类似C,只是比C更加宽松。
5.2 Matlab控制流
5.2.1 Matlab条件控制if,else,switch
下面我们通过三个简单的例子来说明这三个函数的使用。
If和else语句的使用
a = randi(100, 1);if a 《 30 disp(‘small’)elseif a 《 80 disp(‘medium’)else disp(‘large’)end 命令窗口输出结果如下:

switch语句的使用
a = randi(100, 1);
if a 《 30
disp(‘small’)
elseif a 《 80
disp(‘medium’)
else
disp(‘large’)
end
命令窗口输出结果如下:

在这里顺便介绍一个类似于C语言中scanf的函数input并配合上面的if else实现一个小功能:
yourNumber = input(‘Enter a number: ’);
if yourNumber 《 0
disp(‘Negative’)
elseif yourNumber 》 0
disp(‘Positive’)
else
disp(‘Zero’)
end
运行上面代码后,我们在命令窗口输入数字22,输出结果如下:

5.2.2 Matlab循环控制for, while, continue, break
这里我们也通过几个简单的例子来说明这几个函数的使用。
for语句的使用
for n = 3:32
r(n) = rank(magic(n));
end
r
命令窗口输出结果如下:

while语句的使用
a = 0; fa = -Inf;
b = 3; fb = Inf;
while b-a 》 eps*b
x = (a+b)/2;
fx = x^3-2*x-5;
if sign(fx) == sign(fa)
a = x; fa = fx;
else
b = x; fb = fx;
end
end
x
命令窗口输出结果如下:

continue语句的使用
fid = fopen(‘magic.m’,‘r’);
count = 0;
while ~feof(fid)
line = fgetl(fid);
if isempty(line) || strncmp(line,‘%’,1) || ~ischar(line)
continue
end
count = count + 1;
end
fprintf(‘%d linesn’,count);
fclose(fid);
命令窗口的输出结果如下:

break语句的使用
a = 0; fa = -Inf;
b = 3; fb = Inf;
while b-a 》 eps*b
x = (a+b)/2;
fx = x^3-2*x-5;
if fx == 0
break
elseif sign(fx) == sign(fa)
a = x; fa = fx;
else
b = x; fb = fx;
end
end
x
命令窗口输出结果如下:

5.2.3 Matlab矢量化
对于matlab而言,要想加快算法的执行速度可以通过算法的矢量化来实现,比如要实现如下的功能。
x = .01;
for k = 1:1001
y(k) = log10(x);
x = x + .01;
end
但是我们矢量化后,将更加方便和容易实现。
x = .01:.01:10;
y = log10(x);
但是有一点大家要特别注意,不是什么程序矢量化都能加快执行速度,要视具体情况而定。
5.3 Matlab中help功能的使用
关于matlab入门方面的东西就跟大家将这么多,基本上有这些基础就够了,后面遇到什么问题在网上查找资料即可。也可以查看matlab本身的help帮助文档。

如果有不懂的函数,可以直接在命令窗口输入help 再加上函数即可,比如输入:

5.4 总结
Matlab方面的教程就跟大家讲这么多,后面需要那方面知识的时候,我们再具体的补充。学会这些基本的操作就可以入门了。永远要记住,Matlab只是个工具,我们只需把它当个工具来用,没有必要花大量的时间去研究,入门后用什么学什么即可。
举报