收藏 分销(赏)

专题1MATLAB编程实例.ppt

上传人:二*** 文档编号:12704653 上传时间:2025-11-28 格式:PPT 页数:25 大小:552.54KB 下载积分:5 金币
下载 相关 举报
专题1MATLAB编程实例.ppt_第1页
第1页 / 共25页
本文档共25页,全文阅读请下载到手机保存,查看更方便
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,MATLAB 编程实例(I),*,MATLAB,编程实例,hjTang,MATLAB 编程实例(I),1,目录,求素数,计算税率,猴子选大王,有序数组的插入,打印杨辉三角,打印矩阵的最小值,打印鞍点,求矩阵的所有,K,阶子式,MATLAB 编程实例(I),2,1.,求素数,输入一个数,判断它是否是素数,如果不是素数,则至少输出它的一个非,1,因子,MATLAB 编程实例(I),3,程序,%,求一个矩阵中的每个元素是否是奇数,相当于,MATLAB,的函数,isprime,function,res,fctr,=,is_prime(n,),res,=,ones(size(n,);,fctr,=,ones(size(n,);,for K=1:length(n(:),cur_n,=,n(K,);,res(K,),fctr(K,)=,is_a_prime(cur_n,);,end,%,判断单个数是否是奇数,function,res,fctr,=,is_a_prime(n,),res,=true;,for I=2:floor(sqrt(n),if,mod(n,I)=0,fctr,=I;%,找到一个因子,res,=false;,return;,end,end,%,主程序,subplot(3,1,1);,A=2:100;,stem(A,A.*,is_prime(A,),.-),subplot(3,1,2);,A=2:1000;,stem(A,A.*,is_prime(A,),.-),subplot(3,1,3);,A=2:5000;,stem(A,A.*,is_prime(A,),.-),MATLAB 编程实例(I),4,结果,MATLAB 编程实例(I),5,2.,计算税率,月收入,税率,1600,以下,0,1600-2100,5%,2100-3600,10%,3600-6600,15%,6600-21600,20%,21600-41600,25%,41600-61600,30%,61600-81600,35%,81600-101600,40%,101600,以上,45%,MATLAB 编程实例(I),6,salary=linspace(0,10000,20);,plot(salary,get_revenue(salary,),x-);,grid on;,subplot(2,1,2);,salary=linspace(10000,200000,20);,plot(salary,get_revenue(salary,),x-);,grid on;,function revenues=,get_revenue,(salaries,),revenues=,ones(size(salaries,);,for I=1:length(salaries(:),revenues(I,)=,get_a_revenue(salaries(I,);,end,程序,1,function revenue=,get_a_revenue(salary,),revenue=0;,if salary 1600,return;,end,%-1600 2100,salary=,salary,-1600;,if salary (2100-1600),revenue=,revenue,+salary*0.05;,return;,else,revenue=,revenue,+(2100-1600)*0.05;,end,%-2100 3600,salary=,salary,-(2100-1600);,if salary (3600-2100),revenue=,revenue,+salary*0.10;,return;,else,revenue=,revenue,+(3600-2100)*0.10;,end,%-3600 6600,%-6600 21600,%-21600 41600,%-41600 61600,%-61600 81600,%-81600 101600,%-81600 101600,salary=,salary,-(81600-61600);,if salary salary);,I =pre_I(1)-1;,if(I=0),return;,end,revenues=,pre_fee(I,)+(salary-,starts(I,)*,rates(I,);,MATLAB 编程实例(I),9,3.,猴子选大王,有,N,个猴子,按,1,:,N,进行编号,坐成一个圈;猴子从,1,开始轮流报数,每次报到,Q,时该猴子出局;然后再轮流报数,最后剩下的即为大王,N=7,Q=3:4,号为大王,N=7,Q=2:7,号为大王,MATLAB 编程实例(I),10,C,语言的做法,function king=,GetKing_c(N,Q),A=1:N;,notOut,=,logical(A,);,K=0;,for I=1:N-1,J=Q;,while J0,K=K+1;,if KN;K=1;end,if,notOut(K,),J=J-1;end,end,notOut(K,)=0;,end,king=,A(notOut,);,end,MATLAB 编程实例(I),11,MATLAB,的做法,function king=,GetKing_m(N,Q),if Q=1,king=N;return;end,A=1:N;,left=0;,while,length(A,)1,start=Q-left;,left=,mod(length(A,)-start,Q);,A(start:Q:end,)=;,end,king=A;,end,MATLAB 编程实例(I),12,外层封装,function,monkey_king,max_king_num,=50;,max_cnt_num,=50;,N,Q=meshgrid(1:max_king_num,1:max_cnt_num);,KingC,=N*,NaN,;,KingM,=N*,NaN,;,for I=2:max_cnt_num,for J=1:max_king_num,KingC(I,J)=,GetKing_c(N(I,J),Q(I,J);,KingM(I,J)=,GetKing_m(N(I,J),Q(I,J);,end,End,subplot(1,2,1);,contour(KingC,);shading,interp,;,xlabel(king,number);ylabel(counter,);,subplot(1,2,2);,contour(KingM,);shading,interp,;,xlabel(king,number);ylabel(counter,);,end,MATLAB 编程实例(I),13,MATLAB 编程实例(I),14,4.,有序数组的插入,已知,A,为一有序向量(由小到大排列),试将,B,依次插入至,A,中,使得,A,仍然有序,,例如,A=1 3 4 5 9B=2 6,插入后,A,为,A=1 2 3 5 6 9,MATLAB 编程实例(I),15,程序,function A=insert1(A,n),A=A n;,for I=length(A)-1:-1:1,if n A(I),A(I+1)=n;,return;,end,A(I+1)=A(I);,end,A(I)=n;,function A=insert2(A,n),I=,find(A,n);,if(,length(I,)=0),A=A n;,return;,end,I=I(1);,A=A(1:I-1)n,A(I:length(A,);,function A=,insert_sorted(A,B),B=,sort(B,);,for I=1:length(B(:),cur_n,=B(I);,A=insert1(A,cur_n,);,end,MATLAB 编程实例(I),16,归并算法,function,C=,seq_combine,(A,B),N1=,length(A,(:);,N2=,length(B,(:);,I=1;J=1;K=1;,while,I=N1&J=N2,if,(A(I)B(J),C(K)=A(I);,I=I+1;,else,C(K)=B(J);,J=J+1;,end,K=K+1;,end,C=C,A(I:end,);,C=C,B(J:end,);,MATLAB 编程实例(I),17,5.,打印杨辉三角,1,1 1,1 2 1,1 3 3 1,1 4 6 4 1,1 5 10,10,5 1,1 6 15 20 15 6 1,MATLAB 编程实例(I),18,程序,function yanhui2(n),A=1;,disp(A);,for I=2:n,A=A 0+0 A;,disp(A);,end,function yanhui1(n),A=1;,disp(A,);,for I=2:n,B=1 A;,A=A 0;,for J=2:I,B(J)=A(J-1)+A(J);,end,disp(B,);,A=B;,end,MATLAB 编程实例(I),19,1,1 1,1 2 1,1 3 3 1,1 4 6 4 1,1 5 10,10,5 1,1 6 15 20 15 6 1,1 7 21 35,35,21 7 1,1 8 28 56 70 56 28 8 1,1 9 36 84 126,126,84 36 9 1,打印结果,MATLAB 编程实例(I),20,6.,打印矩阵的最小值及其位置,function v pos=get_min1(A),pos=;,v=,min(min(A,);,M N=,size(A,);,for I=1:M,for J=1:N,if(v=A(I,J),pos=pos;I J;,end,end,end,I,J=,find(A,=v);,I,J=,find(abs(A-v,)=,max(A,(:,J),v=v A(I,J);,pos=pos;I J;,end,end,end,MATLAB 编程实例(I),23,8.,求矩阵的所有,K,阶子式,给定一个,MN,矩阵,试求出其所有,K,阶子式,MATLAB 编程实例(I),24,程序,M=3;,N=5;,%,生成一个,M=3,行,N=5,列,%,有规律的矩阵,%11 12 13 14 15,%21 22 23 24 25,%31 32 33 34 35,A=(1:M)*ones(1,N)*10 +,ones(M,1)*(1:N);,disp(A,);,disp_rank_k,(A,3);,function,disp_rank_k,(A,K),M N=,size(A,);,if K M|KN,disp(Input,error);,return,end,Is=,combnk,(1:M,K);,Js=,combnk,(1:N,K);,cnt,=1;,for I=1:size(Is,1),II=,Is(I,:);,for J=1:size(Js,1);,JJ=,Js(J,:);,fprintf,(%3d:,cnt,);,cnt,=,cnt,+1;,disp(A(II,JJ);,end,MATLAB 编程实例(I),25,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 环境建筑 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服