MATLAB三种程序结构

%顺序结构
%数据的输入input()
%a=input('请输入数值a')
%A=input('请输入矩阵A')
%数据输出disp()
%disp(A)
%程序的暂停pause(senconds)

%ex2:编写求解一元二次方程的函数
%ax^2+bx+c=0

 

function [solveV] = func2()
%该函数用于求解一元二次方程
a=input('请输入方程二次项系数:');
b=input('请输入方程一次项系数:');
c=input('请输入方程常数项系数:');

delta=b*b-4*a*c;
solveV=[(-b+sqrt(delta))/(2*a),(-b-sqrt(delta))/(2*a)];

end

 法②:

 

 

 
%选择结构
%if/switch
%if-else语句
test1=input('请输入测试数据:')
if test1>=0
    disp('非负数')
else
    disp('负数')
end

 

 

 %if-elif-else
test2=input('请输入测试数据2:')
if test2>=3&&test2<6
    disp('test2>2并<6')
elif test2>=6
    disp('test>6')
else
    disp('test<3')
end

 %switch
price=input('请输入测试数据3:');
switch price
    case price<200&&price>=100
        disp(1)
    case price>400
        disp(2)
    otherwise
        disp('error')
end

 

 %循环结构
%for while

%break continue
%求阶乘
res=1
for i=1:1:10
    res=res*i;
end
disp(res)

 

%for循环需要注意
for k=[1 2 3 5]
    k
end

disp('***************************')
for k=[1 2 3 5]
    k
    k=20
end

 

disp('***************************')
n=10;
for k=1:1:n
    n=5;
    k
end
%注意:循环在一开始进入的时候,循环变量就已经确定,不会再随着

disp('***************************')
for k=[1 2 3 5]
end
disp(k)
%最终值就是循环向量中最后的值
disp('***************************')
for k=[]
    disp('for循环已执行')
end
%注意,循环向量为空时,循环一次也不会执行


disp('***************************')
for k=[1]
    disp('for循环已执行')
end

 %for循环变量为矩阵时,按列循环
sum=0;
a=[1,2,3;4,5,6;7,8,9;10,11,12];
b=[1 2 3;
    4 5 6;];
for k=b
    k
end
disp(b)

 function [s] = getIntegral(down,up)
%求解某段积分限的积分值
n=1000;
h=(up-down)/n;
x=down;
s=0;
f0=exp(-0.5*x)*sin(x+pi/6);
for i=1:n
    x=x+h;
    f1=exp(-0.5*x)*sin(x+pi/6);
    s=s+(f0+f1)*h/2;
    f0=f1;
end
end

 

 

%while语句
a=5;
n=1;
sum=1
%阶乘
while(n<=a)
    sum=sum*n;
    n=n+1;
end

sum

 %break用于跳出一整层循环
%continue跳出一次循环
for i=1:1:10
    if i==5
        break
    else
        disp(i)
    end
end

 
%break用于跳出一整层循环
%continue跳出一次循环
for i=1:1:10
    if i==5
        %break
        continue

    else
        disp(i)
   
    end
end

%循环嵌套
%ex1
sum=0;
for k=1:1:10
    sum=sum+k;
end
disp(sum)
disp('************************')
%ex2
sum=0;
for k=1:1:10
    for j=1:1:10
        sum=sum+j; 
    end
end
disp(sum)
disp('************************')
%ex3
sum=0;
for k1=1:1:10
    for k2=1:1:10
        sum=sum+k2;  
    end
    disp(sum)
    sum=0;
end
disp(sum)
disp('************************')

 
%循环嵌套相关题目
%求解1!+2+。。。。。n!
c=5;
sum=0;
for k1=1:1:c
    temp=1;
    for k2=1:1:k1
        temp=temp*k2;
    end
    sum=sum+temp;
end
sum

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值