第一篇:矩量法matlab程序设计实例
矩量法matlab程序设计实例:
Hallen方程求对称振子天线
一、条件和计算目标 已知:
对称振子天线长为L,半径为a,且天线长度与波长的关系为L0.5,aL,a,设1,半径a=0.0000001,因此波数为k2/2。目标: 用Hallen方程算出半波振子、全波振子以及不同L/值的对应参数值。
求:(1)电流分布
(2)E面方向图(二维),H面方向图(二维),半波振子空间方向性图(三维)
二、对称振子放置图
l/2电流分布馈电端~l/2yx图1 半波振子的电流分布
半波振子天线平行于z轴放置,在x轴和y轴上的分量都为零,坐标选取方式有两种形式,一般选取图1的空间放置方式。图1给出了天线的电流分布情况,由图可知,当天线很细时,电流分布近似正弦分布。
三、Hallen方程的解题思路
z2z1zizzGz,zdzc1coskzc2sinkz'''kjz0i' Ezsinkzz'dzz对于中心馈电的偶极子,Hallen方程为
L2L2i(z')Gz,z'dz'c1coskzc2sinkz脉冲函数展开和点选配,得到
Visinkz,j2LLz 22Inn1N1znznGzm,z'dz'c1coskzmc2sinkzmVisinkzm,j2m1,2,,N 上式可以写成 矩阵形式为 In2N1npmnc1qmc2smtm,m1,2,,N
p12,p13,,p1,N1,q1,s1I2t1tp,p,,p,qsI22232,N12,232 IN1ct1N1tNc2pN2,pN3,,pN,N1,qN,sN
四、结果与分析
(1)电流分布
图2 不同L/电流分布图
分析:由图2可知半波振子天线L/=0.5的电流分布最大,馈点电流最大,时辐射电阻近似等于输入电阻,因为半波振子的输入电流正好是波腹电流。(2)E面方向图(二维)
图5 不同L/的E
面方向图(1)分析:
(a)θ=0时,辐射场为0。
(b)当L/1(短振子)时,方向函数和方向图与电流元的近似相同。
(c)L/1.25时,最大辐射方向为max,主瓣随L/增大变窄。
2L/1后开始出现副瓣。由图6可以看出。
(d)L/1.25时,随L/增大,主瓣变窄变小,副瓣逐渐变大;L/继续增大,主瓣转为副瓣,而原副瓣变为主瓣。(如图6所示)
图6 不同L/的E面方向图(2)H面方向图(二维)
图7 未归一化的不同L/的H面方向图
图8 归一化的不同L/的H面方向图
空间方向性图(三维)
图9 半波振子的空间方向图
图10 半波振子的空间剖面图
附程序: clc;clear all clf;tic;
%计时 lambda=1;N=31;a=0.0000001;%已知天线和半径 ii=1;for h=0.2:0.1:0.9 L=h*lambda;len=L/N;%将线分成奇数段,注意首末两端的电流为0 e0=8.854e-012;u0=4*pi*10^(-7);k=2*pi/lambda;c=3e+008;w=2*pi*c;%光速,角频率 ata=sqrt(u0/e0);z(1)=-L/2+len/2;for n=2:N
z(n)=z(n-1)+len;end for m=1:N
for n=1:N
if(m==n)
p(m,n)=log(len/a)/(2*pi)-j*k*len/4/pi;
else
r(m,n)=sqrt((z(m)-z(n))^2+a^2);
p(m,n)=len*exp(-j*k*r(m,n))/(4*pi*r(m,n));
end
end end for m=1:N
q(m)=cos(k*z(m));
s(m)=sin(k*z(m));
t(m)=sin(k*abs(z(m)))/(j*2*ata);end pp=p(N+1:N^2-N);pp=reshape(pp,N,N-2);mat=[pp,q',s'];%构造矩阵 I=matt';II=[0;I(1:N-2);0];%加上两端零电流 Current=abs(II);x=linspace(-L/2,L/2,N);
figure(1);string=['b','g','r','y','c','k','m','r'];string1=['ko','bo','yo','co','mo','ro','go','bo'];plot(x,Current,string(ii),'linewidth',1.3);xlabel('L/lambda'),ylabel('电流分布');grid on hold on %legend('L=0.1lambda','L=0.2lambda','L=0.3lambda','L=0.4lambda','L=0.5lambda','L=0.6lambda','L=0.7lambda','L=0.8lambda','L=0.9lambda','L=1lambda')legend('L=0.1lambda','L=0.3lambda','L=0.5lambda','L=0.7lambda','L=0.9lambda','L=1.1lambda','L=1.3lambda','L=1.5lambda')Zmn=1/I((N+1)/2);%%%%%%V=1v theta=linspace(0,2*pi,360);
for m=1:360
for n=1:N
F1(m,n)=II(n).*exp(j*k*z(n)*cos(m*pi/180))*len*sin(m*pi/180);
end end F2=-sum(F1');F=F2/max(F2);%%%归一化 figure(2);polar(theta,abs(F),string(ii));title('E面归一化方向图')view(90,-90)%legend('L=hlambda','L=0.3lambda','L=0.3lambda','L=0.4lambda','L=0.5lambda','L=0.6lambda','L=0.7lambda','L=0.8lambda','L=0.9lambda','L=1lambda')legend('L=0.1lambda','L=0.3lambda','L=0.5lambda','L=0.7lambda','L=0.9lambda','L=1.1lambda','L=1.3lambda','L=1.5lambda')hold on figure(3)kk=1;for phi=0:pi/180:2*pi for n=1:N
FF(n)=II(n)*len*exp(i*k*len*n*cos(pi/2))*sin(pi/2);end;FFF(kk)=sum(FF);kk=kk+1;end;phi=0:pi/180:2*pi;polar(phi,FFF/max(abs(FFF)),string(ii));title('pattern,F({theta},{phi}),theta=90');legend('L=0.1lambda','L=0.3lambda','L=0.5lambda','L=0.7lambda','L=0.9lambda','L=1.1lambda','L=1.3lambda','L=1.5lambda')hold on figure(4)polar(phi,FFF/max((FFF)),string(ii));title('pattern,F({theta},{phi}),theta=90');hold on figure(5)mm=1;for theta=0:0.01*pi:pi;for n=1:N
E(1,n)=2*pi*c*u0*len/(4*pi*1)*(exp(-i*k*1)*exp(i*k*len*n*cos(theta))*sin(theta));end
EE=E*II;
G(mm)=(4*pi*1^2)/ata/abs(II((N-1)/2+1))^2/(-real(Zmn))*abs(EE)^2;mm=mm+1;end
归
一
化
H-plane
不
同
L/lambda
H-plane
第二篇:MATLAB程序设计教学大纲
《MATLAB程序设计教学大纲》
课程代码:1010330 实验教学:24学时+16学时 课程学分:2.5 先修课程:C/C++程序设计语言或VB程序设计语言 课程的性质和教学目标
《MATLAB程序设计》是工科大学非计算机类理、工、管理专业学生的一门计算机必修基础课。MATLAB 作为一种高级科学计算软件,是进行算法开发、数据可视化、数据分析以及数值计算的交互式应用开发环境。本课程注重实际能力的培养,使学生能够运用MATLAB进行一般的工程计算,掌握MATLAB的基本技术。
二、教学要求:
课程的指导思想是“学以致用”,课程知识点系统全面,能锻炼学生的动手能力。课堂教学讲述了MATLAB基本技术,包括基本计算、矩阵处理、符号运算、计算结果可视化等,结合实际问题,探索 “理论结合实践”的教学模式,注重精讲多练,培养学生利用MATLAB解决专业实际工程问题的能力。课堂教学覆盖不到之处通过实验课让学生在实践中学习,力求实现“教学与自学相结合”的教学原则,重视创新能力和综合能力的培养。
三、教学内容
第一章 MATLAB课程概述()
1.MATLAB开发环境介绍 2.MATLAB环境设置和路径设置 3.MATLAB的安装与激活 第二章 MATLAB程序设计基础()1.常量与变量的使用方法; 2.数组的创建和使用方法; 3.各种运算符的使用方法;
4.函数文件的创立和使用:m文件的创建和调用方法; 5.三种控制结构(顺序结构、分支结构和循环结构)6.调试技巧
第三章 MATLAB数值计算()
1.矩阵运算(矩阵的构造,矩阵的基本运算和高级运算)2.多项式运算(多项式的构造和运算)3.其他数值计算
4.数据处理(数据插值和曲线拟合)第四章 MATLAB符号计算 1.符号定义
2.符号运算(初等代数运算,复合函数,反函数,极限,泰勒展开,级数求和,符号微分,符号积分等)第五章 图形处理 1.2D图形处理 2.3D图形处理 3.声音与动画的实现 第六章 图形用户界面编程简介 第七章 工具箱的使用介绍
四、教材与参考书
教材:《MATLAB基础教程》(2011年第一版)清华大学出版社
丛书名
第三篇:法矩方圆(论文)
法矩方圆,德行大道
——谈依法治校工作的点滴体会
依法治校是学校发展的必由之路,是法制社会在学校教育中的体现。多年从事学校管理工作让我对依法治校工作有了一些思考,下面结合我们学校几年来的工作实际,谈一些粗浅的认识。
一、法制的前提是知法懂法
“依法治校、以德治校”是现代学校的标志,是学校生存和发展的基础工作。要实现法制就必须实现法律的普及,学习法律知识非常重要。学校普法的主力军是教师,教师队伍的知法守法水平直接影响着学校的依法治校水平和学生守法用法的水平。几年来,学校认真落实学法目标,做到每年有普法计划、有普法重点。为了解决普法目标,我们采取书记校长带头讲法,专业教师专题讲法,教师进教师普法等办法,促进教师学法。同时学校制定了相应的规章制度来规范教师的教育行为。
与此同时,认真执行法律知识进课堂活动。除了在思想品德课中渗透法律知识,还设立专职法律教师,开设法律课程。为了加强同学们对法律常识的理解,学校还组织了模拟法庭,组织了学生上街维持交通,法律案例大家谈和辩论会等多种形式推动学生学习法律知识和运用法律知识的能力。
二、加强队伍建设 提高依法治校工作水平
依法治校首先是要建设好干部教师两支队伍,提高师资素质。在领导班子建设方面,我们以“五好班子”建设为抓
手,全面推进班子的各项建设,提高班子成员的整体素质和班子的领导效能。在工作中学校明确提出学校管理的五项原则:即在学校管理中充分体现校长负责,支部监督,分工明确、协同运行;在干部和教师的任用上全面实现干部、教师的聘用制,在日常管理中实现教师的手册化管理,充分调动教职工的积极性;在三育人工作中实施目标管理,突出工作过程的科学化;在管理决策上实施民主管理,体现公平原则。通过五项措施保证,体现依法治校、集体领导、民主管理、科学决策的工作要求,确保了学校各项工作协调进行和各项工作目标的实现。
建设一支爱岗敬业、素质优良的师资队伍,是学校开展好一切工作的基础。教师队伍的建设,重点在于师德建设,落实要靠政策引导。为此学校对全体教师提出了要具备八种工作能力,九项师德要求。同时在德育工作目标中提出:学校应努力做到以严格的要求规范学生,以优良的校风影响学生,以高尚的师德感染学生,以优美的环境陶冶学生,以崇高的典范激励学生,以扎实的课程发展学生,以丰富的活动提高学生,以现代的思想武装学生。重视德育在学校工作中的基础作用,积极研究学校教育中的德育问题,特别是发挥德育教育对人行为的主观能动力量,挖掘德育的各项功能,抓住学校工作的主动权。使教师与家长、学生建立起和谐的人际关系。在加强教师职业道德教育,提高师德水平方面,学校积极引导教师自觉地以《中小学教师职业道德规范》作为教师的行为准则,学校要求教师严格履行保护少年儿童和 2
学生身心健康发展的法律职责,坚决制止乱收费、乱补课、乱发资料行为,严禁教师体罚和变相体罚学生以及歧视“后进生”现象的发生。
三、加强民主监督 规范办学行为
民主办学,广开言路,多方听取师生的呼声是推进学校依法治校、落实民主管理、保障教职工合法权益的一项重要措施。学校规定每月第一整周的星期五为教职工接待日,由学校行政领导向教师解释就教师提出的有关问题。同时深入处组,听取意见,转达反馈,增进了解。群众的意见成为学校推动工作的推进器,几年来,我们正是根据群众的意见加强了校园文化建设、改善了办公条件、增添了教学设施设备,提高了学校教育工作的质量。
四、齐抓共管 营造法制教育氛围
对学生进行社会主义民主法制教育,增强青少年学生的法律意识和法制观念,是抓好依法治校的重要条件和群众基础。加强青少年法制教育需要校内校外相互结合,学校、家庭、社会互动协调,有关部门齐抓共管形成合力,才能收到良好的效果。
1、创设符合法治精神的育人环境
为落实“以人为本”的办学理念,促进学生的全面发展,给学生营造一个良好的法制教育氛围,我校着力建构一个符合法治精神的育人环境:“营建一个民主和谐的成长环境,体现管理育人;营建一个优美宜人的校园环境,体现环境育人;营建一个科学规范的课堂环境,体现教书育人;营建一 3
个益智扬长的课外环境,体现活动育人;营建一个温馨关爱的家庭环境,体现抚养育人;营建一个资源共享的社区环境,体现社会育人。”
2、提供安全的学习生活保障
为保障师生的人身安全,保证良好的教育教学秩序,学校十分重视安全工作,狠抓责任制的落实。一是校长与各处室及有关部门签订安全责任书;二是校长与各班主任签订安全责任书;三是学校制定了各种紧急情况下学生避险疏散的应急工作预案,防患于未然;四是定期进行安全检查,排查不安全因素,消除不安全隐患。牢固树立“安全第一”的思想,落实“谁主管、谁负责”的原则,把安全工作落实到每位领导、教师、学生及家长,确保校园安宁。
3、落实学校的依法治校实施方案
落实学校的依法治校,努力做到四个到位:①认识到位:即把普法教育、依法治校作为大事来抓,并纳入学校总体发展规划和各阶段工作计划,保证了此项工作的有序运行;②责任到位:建章立制,责任分解,管理措施落到实处;③宣传到位:开展多种形式的宣传教育活动,提高广大师生普法教育、依法治校重要性的认识;④经费到位:重视普法和依法治校的硬件建设,在经费、资料以及人员的配备上给予保障,确保普法、依法治校顺利开展。
4、开展多种形式的普法教育
对学生进行社会主义民主法制教育,增强青少年学生的法律意识和法制观念,是学校教育工作的重要内容。我校利 4
用“国旗下讲话”、班校会、团队会、文艺活动等形式,对学生进行广泛的法制宣传教育;通过校园宣传橱窗、班级黑板报、校园广播站、校园互联网等宣传媒体对学生进行普法宣传;通过课堂教学主渠道,特别是政治、语文、历史等学科的教学渗透法律知识,对学生进行公民教育;通过组织学生观看法制教育图片展、预防未成年人犯罪资料片和组织学生收听法制教育专题报告,对学生进行法制教育;通过开展法制教育征文活动和演讲比赛,激发了学生学法用法的积极性,促进了法律知识的普及。此外,我校还把普法教育与贯彻执行《公民道德建设实施纲要》、《中学生守则》、《中学生日常行为规范》的养成教育结合起来,把普法教育与争创“文明班集体”、活动结合起来,帮助学生从小树立起正确的人生观、价值观和世界观,使学生养成遵纪守法的良好习惯。
法制社会呼唤法制意识、法制精神,依法治校同样需要全体师生形成共同的意志和行动。依法治校,路就在脚下。
第四篇:matlab程序设计及心得体会
1.编写程序,建立向量n=〔1,2,3,4,5〕,并利用n产生下列向量:(1)2 , 4 , 6 , 8 , 10
(2)1/2 , 1 , 3/2 , 2 , 5/2(3)1, 1/2 , 1/3 , 1/4 , 1/5
(4)1 , 1/4 , 1/9, 1/16, 1/25。
注意:向量n=1:5,/是传统意义上的矩阵的除法,而./是两个矩阵的对应元素相除,同理相乘。此处是对应元素相除,所以一定要记住应该用点除,而非除法。2.从键盘输入一个三位数,将它反向输出。例如输入639,输出为936。
注意:输出函数:disp(),取整用fix(),取余函数mod(x,y)与rem(x,y)一样。3.输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。其中90-100分为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。
要求:(1)分别用if语句和switch语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。注意:switch语句中的case最好用0~9的数字表示而不是表达式!不可用break!后不可用表达式!!为了表示另一种情况,记住用if与其搭配~不要太死板,学会灵活。4.建立5*6的矩阵,要求输出矩阵第n行元素。当n的值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并給出出错信息。
注意:随机产生一个0~1矩阵可以用rand函数,整数矩阵便用fix(100*rand(m,n))函数。产生m*n 阶[a,b]均匀分布U(a,b)的随机数矩阵:
unifrnd(a,b,m, n)
5.产生20个两位随机整数,输出其中小于平均值的偶数。
注意:fix(100*rand(m,n))与round(100*rand(m,n))几乎一样的,随机产生m*n阶矩阵,学会变通,随机产生两位随机整数。fix是指向0靠拢取整。fix(3.7)=3,fix(-3.7)=-3。floor指向下取整,ceil指向上取整。round指四舍五入取整!round最常用~记住a=o指赋值,而a==0指判断,与c语言一样~当矩阵只有一行时,可用a(i)表示每一个数。用k(i)表示来输出每一个数!表示矩阵中的每一列时用a(:,i),表每一行时用a(i,:)。
6.输入20个数,求其中的最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。注意:熟记其中的函数将对编程的速度有很大的提高!孩子,加油!
e0.3ae0.3a0.3asin(a0.3)ln7.y,当a取-30.,-2.9,……,2.9,3.0时,求各点22的函数值。要求分别用顺序结构和循环结构实现。
注意:用size返回向量元素的个数,如果是矩阵,size(a,2)指返回矩阵的竖的个数,即多少列。其中一维是指行,二维指列。记住表示一个向量时,步长放中间。!
8.当n分别取100、1000、10000时,求下列各式的值:(要求分别用循环结构和向量运算(使用sum函数)来实现)
1111 2222123n111(2)1
3571111(3)n
416644(1)
2n2n224466(4)注意:使用while循环时,注意对n初始化,1335572n12n1与c语言较象。普通指数时直接用^,自然指数时,若x已知,用y=exp(x)。
9.若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。例如:2*3-1=5,由于5是素数,所以2和3是亲密数对,5是亲密素数。求〔2,50〕区间内,(1)亲密数对的对数;
(2)与上述亲密数对对应的所有亲密素数之和。
注意:x=primes(n)输出不超过n整数的素数,a=length(x)表示输出素数的个数。用b=isprime(n)来判断n是否为素数,若为素数则b=1,反之为0。学会变通,求和用if循环就好。
111110.根据1,求:
3572n1(1)y<3时的最大n值;(2)与(1)的n值对应的y值。
注意:不能被题目吓跑~~·很简单的,耶耶!
11.已知yf(40)
f(30)f(20)(1)当f(n)=n+10ln(n2+5)时,y的值是多少?
(2)当f(n)=1*2+2*3+3*4+……+n*(n+1)时,y的值是多少?
12.编写一个函数文件,用于求两个矩阵的乘积和点乘,然后在命令文件中调用该函数。13.定义一个函数文件,求給定复数的指数、对数、正弦、余弦,并在命令文件中调用该函数文件。
14.先用函数的递归调用定义一个函数文件求1005010i,然后调用该函数文件求
i1n1zhuyi:yaoxunzaoyigehanshubiannnengjiejue defangfa~~ kkkk1k1k1215.写出下列程序的输出结果。(1)
s=0;a=[12 13 14;15 16 17;18 19 20;21 22 23];for k=a
for j=1:4
if rem(k(j),2)~=0
s=s+k(j);
end
end end s
(2)命令文件 global x x=1:2:5;y=2:2:6;sub(y);x y 函数文件sub.m function fun=sub(z)global x z=3*x;x=x+z;16已知:1111n11,编程求的近似值。
43572n1 注意:在编程过程中,一个小小的乘号将导致很难查出错误,很会影响心情,所以不能忽略小问题,必须仔细小心!
1517.输入下面的矩阵,A913234678101112141516求该矩阵的对角线元素之和,并找出最大和最小的元素的值以及其所在的行、列号。将最大值替换成inf,最小值替换成-inf。注意:①找出矩阵中具体某个元素的具体位置的方法: ind=find(a==max)siz=[4,4]
[I,J] = ind2sub(siz,ind)便可以找到最大元素的位置![I1,I2,I3,...,In] = ind2sub(siz,ind)②对角线元素用diag函数~~ ③要找出一个很大矩阵的最大最小元素用两个for循环。!加油~写出这道题好兴奋啊,这种感觉真好!
18.求解猴子吃桃问题。猴子在第一天摘下若干个桃子,当即吃了一半,又感觉不过瘾,于是就多吃了一个。以后每天如此,到第10天再想吃时,却发现就只剩一个桃子。请编程计算第一天猴子摘的桃子个数。
注意:不要被问题吓到,很简单的一个问题罢了~当顺着不行时,试着倒着来解答编程。19.求n阶勒让德多项式的值,其递归公式为:
p(n,x)((2*n1)*x*p(n1,x)(n1)*p(n2,x))/n
p(0,x)1;p(1,x)x注意;它要的仅仅只是一个定义函数~并没有需要一个确切的值。20.利用恒等式26k11计算圆周率的近似值。k2注意:sqrtm(a):矩阵a开平方根;sqrt(a):矩阵a对应的元素开平方根。
21.输入一个正整数,如果它是偶数就除以2,是奇数就乘以3加上1,如此一直变化,直到最后变成1。
注意:判断一个数是否为整数可以用判断语句a==round(a)!在matlab中,用~=表示不等于,与c语言不同。22.(1)用递归调用求Fibonacci数列定义如下: f1=f2=1 , f(n+1)=f(n)+f(n-1)。
(2)求Fibonacci数列大于4000的最小项。
注意:这道题目很简单,却花了很长的时间~·主要是题目意思没弄清便动笔,要学会分清题意,冷静分析。另外还要注意while的条件,1便执行,0则跳出~。
23.列出所有的水仙花数。水仙花数是一个三位数,其各位数字的立方和等于该书本身。例如:153=13+53+33 注意:当输出的不仅仅是一个数时,需要定义一个数组a(i),i=i+1,输出为a。if语句中,判断条件中为==,而不是赋值语句=!!别总犯相同的错误~~·
24.试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。如N=5,原来x为:而经过颠倒处理后x中数据的次序应该为:x=[ 9 7 5 3 1 ]
25.已知某班的5名学生的三门课成绩列表如下:
学生序号1 2 3 4 5 高等数学78 89 64 73 68 外语83 77 80 78 70 MATLAB语言82 91 78 82 68 试写出有关命令,先分别找出三门课的最高分及其学生序号;然后找出三门课总分的最高分及其学生序号。针对上述的成绩表,求出其三门课总分存入数组ZF,再利用SORT命令对之按降序排序,同时把相应的学生序号存入数组XH。
第五篇:MATLAB游戏编程实例(拼
MATLAB游戏编程实例(拼图)
这是一个简单的游戏,只要把数字按顺序排好就可以了。游戏方法是用鼠标点中数字,如果该数字相邻的格子为空,则自动移到到该空格。
本程序是由realghost编写,如果有问题可以与 slqinyi@163.com 联系。
附图如下:
function pintu1()A = gen()
G = [1 2 3;4 5 6;7 8 0];drawmap(A);
while 1
[xpos,ypos] = ginput(1);col = ceil(xpos);row = 3-ceil(ypos)+1;num = A(row,col);
if row>1&A(row-1,col)==0 A(row-1,col)= num;
A(row,col)= 0;
end
if row<3&A(row+1,col)==0 A(row+1,col)= num;A(row,col)= 0;
end
if col>1&A(row,col-1)==0 A(row,col-1)= num;A(row,col)= 0;
end
if col<3&A(row,col+1)==0 A(row,col+1)= num;A(row,col)= 0;
end
drawmap(A)
zt = abs(A-G);
if sum(zt(:))==0
msgbox('ÄãÒѾ-³É¹¦Æ´ºÃͼ£¡')break
end end
function drawmap(A)clf;hold on
line([0 3],[0 0],'linewidth',4);line([3 3],[0 3],'linewidth',4);line([0 3],[3 3],'linewidth',4);line([0 0],[0 3],'linewidth',4);
for i = 1:3
for j = 1:3
drawrect([j-1 3-i],[j 3-i],[j 3-i+1],[j-1 3-i+1],'y',A(i,j));
end end
axis equal axis off
function drawrect(x1,x2,x3,x4,color,num)x = [x1(1)x2(1)x3(1)x4(1)];y = [x1(2)x2(2)x3(2)x4(2)];fill(x,y,color)if num==0
text(0.5*(x1(1)+x2(1)),0.5*(x1(2)+x4(2)),' ','fontsize',24)else
text(0.5*(x1(1)+x2(1))-0.05,0.5*(x1(2)+x4(2)),num2str(num),'fontsize',24)end
function y = gen()y = inf*ones(1,9);for i = 1:9
while 1
a = randint(1,1,9);
if isempty(find(y==a))y(i)= a;break
end
end end
y = reshape(y,3,3);
当然可以啦,其实图像就是数字矩阵,图像的拼接就是矩阵的拼接,横着拼得行数相等,竖着拼得列数相等就行
例子
clc;clear;
a=imread('我的图片.jpg');[m n t]=size(a);
b=a(1:fix(m/2),:,:);%取图像的上半部分
c=a(fix(m/2)+1:end,:,:);%取图像的下半部分
figure(1);imshow(b);
figure(2);imshow(c);
%注意,上下拼接要求两幅图的列数要相同 %左右拼行数要相同
figure(3);d=[b;c];%把b,c拼起来,若左右拼接d=[b,c];imshow(d);