您的位置:首页 > 编程语言 > MATLAB

matlab中基体函数的用法

2017-05-31 20:40 344 查看

if

#1例
name=input('input one name:','s')
if name(1) >= 'a' & name(1) <= 'h'
disp(['hello,',name])    %拼接字符数组
else
disp(['welcome',name])   %拼接字符数组
end


#2例
s = input('请输入成绩:')
if s >= 90
disp('成绩优异')
elseif s>=80 & s <90
disp('成绩优秀')
elseif s>=60 & s <80
disp('成绩中等')
else
disp('成绩不合格')
end


#3例,对上例的改进
s = input('请输入成绩:')
if s >= 90
disp('成绩优异')
elseif s>=80
disp('成绩优秀')
elseif s>=60
disp('成绩中等')
else
disp('成绩不合格')
end


for

#1例
% for 变量 = 初值:步长:终值
%      语句块
%  end
%================sum(1:100)
%   s=0
%   for i=1:100
%   s = s + i
%   end
%===================
n = 10
for i = 1:1:n
s=sprintf('line %d',i);
disp(s)
end


#2例
%斐波拉契数列
n=input('input n = ');
f(1)=1;
f(2)=1;
for k=3:n
f(k)=f(k-1)+f(k-2);
end
f %显示数组元素


#3例
% 构造一个5行4列矩阵  每个的值 = 100i+j

for i = 1:5 %遍历行
for j = 1:4 %遍历列
m(i,j)=100*i+j;
end
end
m



4000
while

#1例
%循环次数已知,常用for
%循环次数未知知,常用while
%===========================
%while 逻辑表达式
%    语句块
%   end
%===========================
c =0;
while c<50,
c=c+1;
disp(sprintf('iteration %d',c))
end


#2例
%反序列输出“abcde”

str = input('输入字符串:','s')
tmpstr=str;
n = length(str);
i=1;
while i<=n
str(n-i+1)=tmpstr(i);
i=i+1;
end
str


#3例
%找出 x^2-2y=1(x,y>=1,y<=1000)
%将所有正整数解保存在矩阵M中(每行存储一个解)
%判断x是否是整数fix(x)==x
%存储新的解:M = [M;x y]

M =[]; y = 1;
while y<=1000,
x=sqrt(1+2*y);
if fix(x)==x,
M=[M;x y];  %保存找到的一个解
end
y = y+1;
end
disp('所有解:x y')
disp(M)


switch

#1例
name = input('请输入字符串:','s')
switch name(1)
case{'a','b','c','d','e','f','g','h'}
disp(['hello,',name])
otherwise
disp(['welcome,',name])
end


continue和break

% 在工作中continue和break通常用于for,while循环语句中,与if一起使用 %
%continue 跳过本次循环,执行下一次循环
%==============================
% for x = array(或者while表达式),
%   语句块1
%   if条件表达式,
%   continue,
%   end
%  语句块2
% end
%==================================
%银行年利率为4.25%,存入10000元,多少年翻一翻
r=0.0425;
a0=10000;
a=a0;
M=[];
for i = 1:50, %假设50年内可以翻一翻
a = a*(1+r);
M=[M;a i]
if a >= 2*a0,
disp(sprintf('存在了%d年终于翻番了',i))
break;
end
end
M


#2例
%请对输入的成绩判断等级
grad = input('请输入成绩')
grad = fix(grad/10)
switch grad
case{9,10}, disp('成绩优异')
case{8},    disp('成绩优秀')
case{6,7},  disp('成绩中午')
otherwise   disp('没有及格')
end


inline

%在matlab中,可以直接用函数名调用函数,此外也可以函数名为参数调用
%创建 y = sinx + cosx + e^x*sinx
f = inline('sin(x)+cos(x)+exp(x).*sin(x)','x')
x =- 2*pi:0.01:2*pi;
value = f(x)


匿名函数用法

%匿名函数用法 @(参数列表)(函数表达式)
%f = @(x)(x.^2)

%计算分段函数
f = @(x,y)((x.^2+y.^2<=1).*(x+y)+(x.^2+y.^2>1).*(x-y)); %(x.^2+y.^2<=1).产生0与1的效果
x=-2:0.1:2;  %x=-2:0.1:2意思是x=-2,-1.9,-1.8,-1.7,-1.6....0,0.1,0.2,0.3....2
y=-2:0.1:2;
v=f(x,y)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: