MATLAB图像处理-流控制和代码优化

第二章基本原理

2.10.3流控制

流控制语句:
image.png
1.if

if expression1
    statements1
elseif expression2
    statements2
else
    statements3
end

2.for

for index1 = start1:increment1:end
    statements1
    for index2 = start2:increment2:end
        statement2
    end
    additional loop1 statements
end

3.while

while expressiona1
    statements1
    while expression2
        statement
    end
    additional loop1
end
%语句是否0,控制循环是否继续

4.break
break会终止for或while循环的执行,跳出循环,进行循环外的下一条语句。仅跳出所含的那层循环。
5.continue
跳过本次循环的其他任何语句,进行下一次迭代。
6.switch

switch expression
    case case_express
        statement
    case 
        statement
    otherwise
end

代码优化

MATLAB专为数组运算而设计的编程语言,利用这一优点便可以加速。
向量化循环
1.一维函数生成代码

for x = 1 : M
    f(x) = a * sin((x-1)/(2*pi));
end

代码进行向量优化:

x = 0 : m - 1;
f = A * sin(x/(2*pi));
function [rt, f, g] = twodsin(A,u0,v0,M,N)
%此函数用于比较for循环和向量法
%   循环基于对函数的运行
%   f(x,y) = Asin(u0*x + v0*y)使用for循环
%   输入是M,N和两个参数,

%  首先使用for循环
tic %   计时开始
for r = 1 : M
    u0x = u0 * (r - 1);
    for c = 1 : N
        v0y = v0 * (c - 1);
        f(r,c) = A * sin(u0x + v0y);
    end
end
t1 = toc;%计时结束

%使用向量法,调用图像g?
tic %time start
r = 0 : M - 1;
c = 0 : N - 1;
[C,R] = meshgrid(c,r);
g = A*sin(u0*R + v0*C);
t2 = toc;   %end timing

%比较两个方法的时间
rt = t1 /(t2 + eps);
  • g = mat2gray(g) 可以将数据可视化为图像
  • imshow(g) 可显示图像
    预分配数组
    预先创建适当维数的数组,元素为0,可以加快执行时间。
    f = zeros(1024);g = zeros(1024);

2.10.5交互式I/O

  • disp( argument):
    在屏幕上显示信息,argument是一个文本串,显示其字符。
    eg:
    A = [1 ,2 ;3 ,4]
    disp(A)
  • t = input(‘message’):
    该函数输出message的内容,提示用户,然后获取用户的输入,然后回车,将输入保存在t中。可以输入单个数字,字符串(需要用单引号括起),向量(方括号括起,逗号或空格分开)或其他有效的MATLAB数据结构。
    t = input('message','s'):提示输入一个字符串。
    若输入数字,可用str2num转换成double的数字n = str2num(t)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linxid

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值