matlab第二章实训报告
matlab实训报告总结
matlab实训报告总结Matlab实训报告总结摘要:本文总结了在Matlab实训中所学到的知识和经验,包括Matlab的基本操作、常用函数的使用、图形绘制和数据处理等方面。
通过实际操作和实验练习,我们深入了解了Matlab的强大功能和灵活性,在数据处理和科学计算方面取得了令人满意的结果。
1. 引言Matlab是一种强大的科学计算软件,广泛应用于工程、数学、物理和其他科学领域。
在Matlab实训中,我们学习了如何使用Matlab 进行数据处理、模拟实验和图形绘制等操作。
2. 实训内容在实训中,我们首先学习了Matlab的基本操作,包括变量的定义和赋值、数组和矩阵的创建和运算,以及条件语句和循环语句的使用。
这些基本操作是我们后续实验的基础。
接着,我们学习了常用函数的使用。
Matlab提供了许多内置函数,例如求解方程、插值、傅里叶变换等。
我们通过实际例子学习了这些函数的使用方法,并在实验中应用到了实际问题中。
在图形绘制方面,Matlab提供了丰富的绘图函数,可以绘制二维和三维图形。
我们学习了如何绘制线条、曲线、散点图和柱状图等,并通过实验练习提高了我们的图形绘制能力。
我们学习了数据处理的方法。
Matlab提供了强大的数据处理函数,可以对数据进行滤波、拟合、统计和分析等操作。
我们通过实验掌握了这些数据处理方法,并将其应用到了实际数据中。
3. 实训成果通过Matlab实训,我们取得了一些令人满意的成果。
首先,我们掌握了Matlab的基本操作,能够灵活运用各种语句和函数解决问题。
其次,我们学会了使用Matlab进行数据处理和图形绘制,能够对实验数据进行分析和展示。
最后,我们通过实验练习,提高了自己的问题解决能力和创新思维。
4. 实训心得在Matlab实训中,我们遇到了一些困难和挑战。
但是通过不断的尝试和学习,我们克服了这些困难,取得了一些进步。
在实训中,我们学会了如何提高自己的编程技巧和问题解决能力,培养了耐心和坚持的品质。
matlab_实习报告
matlab_实习报告在大学的学习生涯中,实习是一个非常重要的环节,它能够让我们将理论知识与实际应用相结合,提升自己的专业技能和综合素质。
本次实习,我选择了使用 MATLAB 这个强大的工具进行实践操作,通过一段时间的学习和实践,我收获颇丰。
一、实习目的本次实习的主要目的是深入了解和掌握MATLAB 软件的使用方法,能够运用其解决实际问题,并提高自己的编程能力和逻辑思维能力。
同时,通过实际项目的操作,培养自己的团队协作精神和解决问题的能力,为今后的学习和工作打下坚实的基础。
二、实习单位及岗位介绍我实习的单位是_____,在实习期间,我主要负责利用 MATLAB 进行数据分析和算法实现的相关工作。
三、实习内容及过程(一)基础学习在实习的初期,我首先对 MATLAB 的基本语法和操作进行了系统的学习。
了解了变量的定义、数据类型、矩阵运算、函数的编写等基础知识。
通过大量的练习和实例,我逐渐熟悉了 MATLAB 的编程环境,能够熟练地编写简单的程序。
例如,在学习矩阵运算时,我通过编写程序实现了矩阵的加法、乘法、求逆等操作,深刻理解了矩阵运算在数学和工程中的重要应用。
(二)项目实践在掌握了基础知识后,我开始参与实际的项目。
其中一个项目是对一组数据进行分析和处理,以提取有用的信息。
首先,我使用MATLAB 读取数据文件,并对数据进行预处理,包括去除噪声、缺失值处理等。
然后,运用统计学方法对数据进行分析,计算均值、方差、相关性等统计量。
最后,通过绘图函数将分析结果以直观的图表形式展示出来,以便更好地理解数据的特征和趋势。
在这个过程中,我遇到了很多问题。
例如,数据的格式不一致导致读取错误,算法的复杂度过高导致运行时间过长等。
通过查阅资料、请教同事和不断地调试,我最终解决了这些问题,顺利完成了项目任务。
(三)算法实现除了数据分析,我还参与了算法的实现工作。
在一个图像识别的项目中,需要使用机器学习算法对图像进行分类。
国家开放大学《Matlab语言及其应用》实验报告(第二章--Matlab基本程序设计)
国家开放大学《Matlab语言及其应用》实验报告
——Matlab基本程序设计
姓名:学号:
1.M文件
M文件是一个文本文件,可以用任何文本编辑器来建立和编辑,通常使用 Matlab 自带的 M 文件编辑器。
例:编写一个脚本文件将华氏温度转化为摄氏温度。
c=5
9
(f−32)
●新建一个 M 文件 f2cs.m,内容如下:
clear; % 清除当前工作空间中的变量
f=input('Please input Fahrenheit temperature:');
c=5*(f-32)/9;
fprintf('The centigrade temperature is %g\n',c);
●在命令窗口中输入 f2cs,即可执行该 M 文件。
脚本文件运行后,文件中所产生的所有变量都驻留在 Matl ab 当前工作空间,可以用 whos 查看。
2.程序控制结构
例:计算函数y=cos(x+1)+√x2+1 x≥10d的值。
clear
x=input('请输入x的值:');
if x>=10
y=cos(x+1)+sqrt(x*x+1);
end
y
请输入x的值:12
y =12.9490
3.程序调试
例:拼写错误
clear
t=0:0.1:10;
y=son(t);
例:函数错误
调试器的使用:MatLab的调试器和M文件编辑器集成一体。
中国民航大学 matlab实习报告 实验二
实验二数据和函数的可视化实验目的:1.熟悉matlab软件中二维绘图和三维绘图的方法2.学习使用matlab图形窗功能实验内容:基本命令>> x=linspace(0,2*pi,100);>> y=sin(x);>> plot(x,y);问题1:1.当运行x=[1 5 3 7;3 6 8 4;9 6 1 5];y=[2 5 7 4;6 8 4 1;8 0 4 2];plot(x,y)时的结果:2.当运行x=[1 5 3 7];y=[2 5 7 4;6 8 4 1;8 0 4 2];plot(x,y)时显示:3. 运行x=[1 5 3 7;3 6 8 4;9 6 1 5];y=[2 5 7 4;6 8 4 1;8 0 4 2];m=cat(2,x,y);plot(m);显示:例2:t=0:pi/20:pi;plot(t,t.*cos(t),'-.r*');hold onplot(exp(t/100).*sin(t-pi/2),'--m0')plot(sin(t*pi),':bs') %误把mo写成了m0 ^o^,导致如下结果:??? Error using ==> plotError in color/linetype argument.Error in ==> C:\MA TLAB6p5\work\Untitled2.mOn line 4 ==> plot(exp(t/100).*sin(t-pi/2),'--m0')正确输入:t=0:pi/20:pi;plot(t,t.*cos(t),'-.r*');hold onplot(exp(t/100).*sin(t-pi/2),'--mo') plot(sin(t*pi),':bs')如果没有hold on:t=0:pi/20:pi;plot(t,t.*cos(t),'-.r*');plot(exp(t/100).*sin(t-pi/2),'--mo')plot(sin(t*pi),':bs')所以hold on 起到继续在当前图形上画图的作用图形修饰与控制axis square %将图形设置为正方形axis equal %x,y轴单位刻度相等title (‘字符串’)%图形标题、axis([xmin,xmax,ymin,ymax])%x轴范围在xmin-xmax之间,y轴范围在ymin-ymax之间xlabel(‘字符串’)%x轴标注ylabel(‘字符串’)%在(x,y)处标注说明文字text(x,y,’字符串’)%在(x,y)处标注说明文字grid on % 加网格线grid off % 取消网格线hold on %保持当前图形hold off %解除hold on 命令legend(‘first’,’second’,n) % 对一个坐标系上的两幅图形做出图例注解subplot(m,n,p)将当前窗口分成m行n列区域,并指定在p区绘图fill(x,y,’b’)%将x(1),y(1),(x(2),y(2)),…,(x(n),y(n)),(x(1),y(1))围成的封闭图形填充为蓝色例三:subplot(2,2,1);x=0:pi/60:2*pi;plot(x,cos(x));subplot(2,2,2);x=0:pi/60:2*pi;plot(x,sin(x));subplot(2,1,2);plot(x,sin(x),':b',x,cos(x),'-r')legend('sin(x)','cos(x)',1)例四:clf; %清除图片clear;x=0:pi/60:2*pi;y=sin(x);x1=0:pi/60:pi/2;y1=sin(x1);plot(x,y,'-r')hold on;fill([x1,pi/2],[y1,0],'b')问题2:将上面最后一句改为fill(x1,y1,'b'),fill([pi/2,x1,3*pi/2],[0,y1,0],'r') 效果对数图形格式:loglog(x,y) %对x轴pi,y轴的刻度用常用对数(以10为底)semilogx(x,y) %对x轴的刻度常用对数值,而y轴为线性刻度semilogy(x,y)%对y轴的刻度常用对数值,而x轴为线性刻度例五:clear;x=logspace(-1,2);loglog(x,10*exp(x),'-s')grid on三维曲线图格式:plot3(x,y,z,s)说明:当x,y,z均为同维向量时,则plot3描点x(i),y(i),z(i)依次相连的空间曲线,若x,y 均为同维矩阵,x,y,z每一组相应列向量为坐标画出一条曲线。
MATLAB_实习报告范文大全
MATLAB_实习报告范文大全第一篇:MATLAB_实习报告实习报告实习题目:专业:学号:的设计与绘图MATLAB 一.概述MATLAB 作为一种高级科学计算软件,是进行算法开发、数据可视化、数据分析以及数值计算的交互式应用开发环境。
世界上许许多多的科研工作者都在使用 MATLAB 产品来加快他们的科研进程,缩短数据分析和算法开发的时间,研发出更加先进的产品和技术。
二.实验目的1.进一步熟悉MATLAB的软件环境和基本使用方法;2.巩固运用MATLAB、矩阵运算、多项式运算、字符串、单元数组、符号计算功能、绘图及句柄图形及它们的命令语句;3.学习和巩固数字图形图像处理在MATLAB中的知识和运用;4.培养我们独立自学、设计和撰写实验报告的能力;5.通过对MATLAB的进一步学习,是我们加深所学内容的认识,理解,掌握,能把所学知识运用到实际工作中;三.实习日记1.熟悉MATLAB的软件环境和基本使用方法(第一周)MATLAB的语言的基本功能和特点:它是一种高级科学计算语言,相对于传统的C、C++ 或者FORTRAN 语言,MATLAB 提供了高效快速解决各种科学计算问题的方法。
它具有数学计算、开发工具、数据的可视化、交互式编辑创建图形、集成的算法开发编程语言和环境、图形用户界面开发环境——GUIDE、开放性、可扩展性强、专业应用工具箱等强大的功能。
具有易于学习、使用方便、支持多种操作系统、丰富的内部函数、强大的图形和符号功能等优点。
路径设置:除 MATLAB 默认的搜索路径外,用户可以设置搜索路径。
设置方法为:选择 MATLAB 窗口中的 File | Set Path 命令,进入路径搜索对话框。
MATLAB 的搜索顺序:当在命令窗口中或者一个 M 文件中输入一个元素名时,MATLAB 按照下面的顺序搜索该元素的意义,以元素foo 为例:1)查找工作区中是否存在名为 foo 的变量; 2)在当前路径中查找是否存在名 foo.m 的文件;3)按照顺序查找搜索路径中是否存在该文件。
MATLAB实训报告_2
M AT L A B语言编程实训报告题目MATLAB在信号与系统中的应用年级2008 专业电子信息工程目录第一章绪论 (2)1.1 本设计课题目的及意义, 重点解决的问题 (2)1.1.1 MATLAB在信号与系统中应用的目的及意义 (2)1.1.2 重点解决的问题 (2)1.2 课题的社会和技术背景 (2)1.3 实现的具体功能 (3)第二章课题的基本概念和原理 (4)2.1 MATLAB的概念 (4)2.2 信号与系统的概念 (4)2.3 信号与系统分析的基本内容与方法 (5)2.4 离散系统的基本概念 (6)2.5连续系统模型及表示 (6)第三章系统设计和实现 (7)3.1采用的软件及开发平台 (7)3.1.1系统设计软件 (7)3.1.2开发平台和编程环境 (7)3.2系统的详细设计 (8)3.2.1建模 (8)3.2.2解决方法 (9)3.3系统设计的亮点 (9)第四章结束语 (10)参考文献 (10)第一章绪论1.1 本设计课题目的及意义, 重点解决的问题1.1.1 MATLAB在信号与系统中应用的目的及意义MATLAB在信号与系统中应用能够让学生熟悉MATLAB软件平台、工具箱、高效的数值计算及符号计算功能。
熟悉MATLAB软件的信号处理编程方法和结果的可视化。
了解数字信号处理的计算机仿真方法。
进一步加深对信号与系统的基本原理、方法及应用的理解。
MATLAB软件具有强大的数值分析和计算结果可视化的功能.运用MATLAB软件,通过一个应用实例,将信号与系统课程的理论与实践教学有机地结合,有效地解决了教学中的难点问题,说明了MATLAB软件在信号与系统课程的实践教学中具有重要的实际意义1.1.2 重点解决的问题matlab的基本使用方法, matlab的预定义函数, 如何用matlab绘图, 如何在matlab中编程, 基于matlab的矩阵运算、符号运算、数值分析等。
1.2 课题的社会和技术背景长期以来, “信号与系统”课程一直采用黑板式的单一的教学方式, 学生仅依靠做习题来巩固和理解教学内容, 对课程中大量的应用性较强的内容不能实际动手设计、调试、分析, 严重影响和制约了教学效果。
MATLAB实训报告
MATLAB实训报告摘要:本实训通过运用MATLAB软件进行数据分析和图像处理的实践,深入了解MATLAB的基本操作和功能,通过对实际问题进行实践,提高了数据分析和图像处理的能力。
本实训将主要内容分为两个部分,第一部分是数据分析,主要包括数据导入、数据处理、数据统计和数据可视化;第二部分是图像处理,主要包括图像读取、灰度转换、滤波处理和图像增强。
实训结果表明,通过MATLAB可以方便快捷地进行数据分析和图像处理,提高了数据分析和图像处理的效率和精度。
关键词:MATLAB,数据分析,图像处理,数据可视化,图像增强一、引言MATLAB是一款功能强大的科学计算和工程仿真软件,广泛应用于科学研究、工程设计和教学领域。
MATLAB提供了丰富的函数库和工具箱,可以用于数据处理、图像处理、信号处理、优化和统计分析等应用。
本实训旨在通过实践,掌握MATLAB的基本操作和功能,提高数据分析和图像处理的能力。
二、数据分析1.数据导入首先,我们需要将要分析的数据导入到MATLAB中。
MATLAB支持导入多种数据文件,如Excel、文本文件、MAT文件等。
在实训过程中,我们将导入一个Excel文件,其中包含了企业一段时间内的销售额数据。
通过使用MATLAB的“xlsread”函数,我们成功将Excel文件导入到MATLAB 中。
2.数据处理在数据导入之后,我们需要对数据进行进一步的处理。
MATLAB提供了丰富的数据处理函数,如数据排序、数据筛选、数据合并等。
在实训中,我们对导入的销售额数据进行了排序和筛选。
通过使用MATLAB的“sort”和“find”函数,我们可以方便地对数据进行排序和筛选。
3.数据统计在数据处理之后,我们可以进一步对数据进行统计分析。
MATLAB提供了丰富的统计分析函数,如均值、方差、相关系数等。
在实训中,我们对销售额数据进行了均值和方差的计算。
通过使用MATLAB的“mean”和“var”函数,我们可以方便地计算数据的均值和方差。
实验二MATLAB程序设计含实验报告
实验二 MATLAB 程序设计一、 实验目的1.掌握利用if 语句实现选择结构的方法。
2.掌握利用switch 语句实现多分支选择结构的方法。
3.掌握利用for 语句实现循环结构的方法。
4.掌握利用while 语句实现循环结构的方法。
5.掌握MATLAB 函数的编写及调试方法。
二、 实验的设备及条件计算机一台(带有MATLAB7.0以上的软件环境)。
M 文件的编写:启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。
点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正三、 实验内容1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。
并输入几组典型值加以检验。
(提示:提示输入使用input 函数)2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。
其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。
要求:(1)用switch 语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
(提示:注意单元矩阵的用法)3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。
重复此过程,最终得到的结果为1。
如:2?13?10?5?16?8?4?2?16?3?10?5?16?8?4?2?1运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。
请为关键的Matlab 语句填写上相关注释,说明其含义或功能。
MATLAB实验报告第二章
第二章作业M2_1.利用MATLAB实现下列连续时间信号。
(1)x(t)=u(t)-u(t-2)function y=heaviside(t);y=(t>0);endt=-10:0.001:10;>>xt=heaviside(t)-heaviside(t-2);>>plot(t,xt)>>axis([-10,10,-2,2])(2) x(t)=u(t)function y=heaviside(t);y=(t>0);endt=-10:0.001:10;>>xt=heaviside(t);>>plot(t,xt)>>axis([-10,10,-2,2])(3)xt=10exp(-t)-5exp(-2t)>> A=10;a=-1;>> t=0:0.001:10;>> x1t=A*exp(a*t);>> A=5;a=-2;>> t=0:0.001:10;>> x2t=A*exp(a*t);>>xt=x1t-x2t;>>plot(t,xt)(4)xt=tu(t)>> t=-10:0.001:10;>>xt=t.*heaviside(t);>>plot(t,xt)(5)xt=2|sin(10pit+pi/3)| >> A=2;w0=10*pi;phi=pi/3; >> t=0:0.001:1;>>xt=A*abs(sin(w0*t+phi)); >>plot(t,xt)>>axis([0,1,-4,4])Xt=cost+sin(2pit)>> A=1;w0=1;phi=0; >> t=0:0.002:10;>> x1t=A*cos(w0*t+phi); >> A=2;w0=2*pi;phi=0; >> t=0:0.002:10;>> x2t=A*sin(w0*t+phi); >>xt=x1t+x2t;>>plot(t,xt)(7)xt=4exp(-0.5t)cos(2pit) >> A=5;a=-0.5;>> t=0:0.001:10;>> x1t=A*exp(a*t);>> A=1;w0=2*pi;phi=0; >> t=0:0.001:10;>> x2t=A*cos(w0*t+phi); >>xt=x1t.*x2t;>>plot(t,xt)(8)Sa(pit)cos(30t)A=1;w0=30;phi=0;>> t=0:0.001:3;>> x1t=A*cos(w0*t+phi);>> t=0:0.001:3;>> x2t=sinc(t);>>xt=x1t.*x2t;>>plot(t,xt)M2-3,写出书中图示波形函数,并画出xt,x0.5t,x(2-0.5t)的图像function yt=x2_3(t)yt=t.*(t>=0&t<2)+2*(t>=2&t<3)+(-1)*(t>=3&t<=5); end>> t=0:0.001:5;>>xt=x2_3(t);>>title('x(t)');>>plot(t,xt)>>axis([0,6,-2,3])>> t=0:0.001:10;xt=x2_3(0.5*t); >>plot(t,xt)>>title('x(0.5t)')>>axis([0,10,-2,3])x(0.5t)>> t=-10:0.001:10;>>xt=x2_3(2-0.5*t);>>plot(t,xt)>>title('x(2-0.5t)')>>axis([-10,10,-2,3])M2-4画出图示的奇分量和偶分量。
matlab实习报告二5篇
matlab实习报告二5篇第一篇:matlab实习报告二MATLAB实习报告(2)实验二 MATLAB矩阵分析与处理王夏一、实验目的1、掌握生成特殊矩阵的方法。
2、掌握矩阵分析的方法。
3、用矩阵求逆发解线性方程组。
二、实验内容1、设有分块矩阵A=[E3×3 R3×2;O2×3 S2×2],其中E、R、O、S分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证A²=[E R+RS;O S²]。
程序清单:E=eye(3);R=rand(3,2);O=zeros(2,3);S=diag([4,5]);A=[E R;O S] ;A2=A^2;C=[E R+R*S;O S^2];length(find(A2==C))==25 运行结果:ans =12、产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及他们的条件数Th和Tp,判断哪个矩阵的性能更好,为什么?程序清单:format rat H=hilb(5);format short P=pascal(5);Hh=det(H);Hp=det(P);Th=cond(A);Tp=cond(P);运行结果:Hh =3.7493e-012 Hp =1 Th =5.5228 Tp =8.5175e+003 实验收获:会建立希尔伯特矩阵和帕斯卡矩阵,知道怎么求矩阵行列式的值以及条件数。
希尔伯特矩阵的性能更好,条件数越接近1的矩阵性能越好。
3、建立一个5×5矩阵,求它的行列式值、迹、秩和范数。
程序清单:A=[1:5;1:0.1:1.5;2 5 7 3 9;2:6;3:0.4:4.6]Ha=det(A);Ra=rank(A);Ta=trace(A);Na=norm(A);运行结果:Ha =1.4421e-031 Ra = 3 Ta =18.7000 Na =19.49664、已知向量A,求A的特征值及特征向量,并分析其数学意义。
matlab实习报告3
matlab实验报告实验二MATLAB的基本数值运算一.实验目的MATLAB具有非常强大的数值计算能力,对各种常量(包括一般常量和固定常量)、各种变量(包括数值变量、字符变量、单元形变量和结构变量)熟悉其用法,向量及其运算,矩阵及其运算,数组及其运算,多项式及其各种运算,线性方程组的求解,数值统计的基本函数及其应用,简单插值函数,简单优化函数,微分方程数值解的基本函数等。
二.实验要求理解常量、变量、向量、矩阵、多项式等概念,掌握向量在MATLAB中的表示,熟练掌握矩阵及其运算,数组及其运算,多项式运算,线性方程组求解,了解数值统计的基本函数,简单插值函数,简单优化函数,微分方程数值解的基本函数等。
三.实验内容实验一第二节:1.简单的矩阵建立与矩阵元素:>> a=[5 6 8 7;7 1 5 4;2 3 8 3]a =5 6 8 77 1 5 42 3 8 3>> b=cos(a)b =0.2837 0.9602 -0.1455 0.75390.7539 0.5403 0.2837 -0.6536-0.4161 -0.9900 -0.1455 -0.9900>> c=a+0.3*(1+b/2)c =5.34256.4440 8.27827.41317.4131 1.3810 5.3425 4.20202.23763.1515 8.2782 3.1515>> d=ones(5)+eye(5)d =2 1 1 1 11 2 1 1 11 12 1 11 1 12 11 1 1 1 2>> x=[-3.2 sqrt(5) (2+5+1)*2/4]x =-3.2000 2.2361 4.0000>> x(6)=abs(x(2))x =-3.2000 2.2361 4.0000 0 0 2.2361>> e=[a,b]e =5.00006.0000 8.00007.0000 0.2837 0.9602 -0.1455 0.75397.0000 1.0000 5.0000 4.0000 0.7539 0.5403 0.2837 -0.65362.00003.0000 8.0000 3.0000 -0.4161 -0.9900 -0.1455 -0.9900 >> f=e(:,[3,6])f =8.0000 0.96025.0000 0.54038.0000 -0.99002.常量变量与表达式:>> g='I can do it'g =I can do it>> A='Hello'A =Hello>> B=2*AB =144 202 216 216 2223.了解命令窗口的常用命令及标点符号的使用;4.学习并掌握内存变量的编辑、保存和清除;5.算术运算:(1)加减法运算:>> h=[2 5 ;7 9];g=ones(2);k=h+gk =3 68 10>> l=k+2l =5 810 12(2)乘除法运算:>> m=k*lm =75 96140 184>> n=pi*mn =235.6194 301.5929439.8230 578.0530>> C=k.*lC =15 4880 120>> D=l.*kD =15 4880 120数组的乘法满足交换率6.乘幂运算:>> a=[5 6 8 7;7 1 5 4;2 3 8 3]a =5 6 8 77 1 5 42 3 8 3 >> a.^2ans =25 36 64 4949 1 25 164 9 64 9 7.转置运算:>> a=[1 2 3;4 2 6;7 4 9]a =1 2 34 2 67 4 9>> c=a'c =1 4 72 2 43 6 98.关系运算与逻辑运算:(1)关系运算:>> a=[1 2 3;4 2 6;7 4 9];b=[5 2 1;4 2 6;3 4 8];c=a>bc =0 0 10 0 01 0 1(2)逻辑运算:>> a=[1 2 3;4 2 6;7 4 9];b=[5 2 1;4 2 6;3 4 8];c=a&bc =1 1 11 1 11 1 1>> a=[1 2 3;4 0 6;7 4 9];b=[5 2 1;4 2 6;3 4 8];c=a&bc =1 1 11 0 11 1 1>> a=[1 2 3;4 0 6;7 4 9];b=[5 2 1;4 2 6;3 4 8];c=a|bc =1 1 11 1 11 1 1>> a=[1 2 3;4 2 6;7 4 9];c=~ac =0 0 00 0 00 0 09.建立特殊数组:>> a=[1 2;4 2]a =1 24 2>> b=[a,eye(2,3);ones(3,2),rand(3)]b =1.00002.0000 1.0000 0 04.0000 2.0000 0 1.0000 01.0000 1.0000 0.7922 0.0357 0.67871.0000 1.0000 0.9595 0.8491 0.75771.0000 1.0000 0.6557 0.9340 0.7431>> a=[1 2 5;4 4 2]a =1 2 54 4 2>> a(:,3)=[]a =1 24 4实验四:一.矩阵,向量的建立与修改由文件生成和保存矩阵?myfileA =1 8 9 5 6 815 8 23 6 2 87 5 9 15 8 321 4 14 15 24 131 4 5 8 9 65 8 7 96 2?whoYour variables are:A?load txtfile.txt?whoYour variables are:A txtfile?save matfile?clear?who?load matfile?whoYour variables are:A txtfile?txtfiletxtfile =1 8 9 5 6 815 8 23 6 2 87 5 9 15 8 321 4 14 15 24 131 4 5 8 9 65 8 7 96 2由函数生成矩阵?eye(3)ans =1 0 00 1 00 0 1?eye(size(A))??? Undefined function or variable 'A'.?ones(3)ans =1 1 11 1 11 1 1?zeros(3)ans =0 0 00 0 00 0 0?rand(4)ans =0.9501 0.8913 0.8214 0.92180.2311 0.7621 0.4447 0.73820.6068 0.4565 0.6154 0.17630.4860 0.0185 0.7919 0.4057?randn(5)ans =-0.4326 1.1909 -0.1867 0.1139 0.2944 -1.6656 1.1892 0.7258 1.0668 -1.33620.1253 -0.0376 -0.5883 0.0593 0.71430.2877 0.3273 2.1832 -0.0956 1.6236-1.1465 0.1746 -0.1364 -0.8323 -0.6918ans =8 1 63 5 74 9 2符号矩阵的创建?exam=sym('[1,x/a,sin(x);y/x,1+1/y,tan(x/y);1=0,3+3,4*r]') exam =[ 1, x/a, sin(x)][ y/x, 1+1/y, tan(x/y)][ 1=0, 3+3, 4*r]矩阵的修改?A=rand(5)A =0.9355 0.3529 0.1987 0.7468 0.84620.9169 0.8132 0.6038 0.4451 0.52520.4103 0.0099 0.2722 0.9318 0.20260.8936 0.1389 0.1988 0.4660 0.67210.0579 0.2028 0.0153 0.4186 0.8381 ?A([1 3],:)=[]A =0.9169 0.8132 0.6038 0.4451 0.52520.8936 0.1389 0.1988 0.4660 0.67210.0579 0.2028 0.0153 0.4186 0.8381 ?A(:,[2 4])=[]A =0.9169 0.6038 0.52520.8936 0.1988 0.67210.0579 0.0153 0.8381?A(2:3,2:3)=eye(2)A =0.9169 0.6038 0.52520.8936 1.0000 00.0579 0 1.0000二.矩阵向量的基本运算矩阵的运算?myfileA =1 8 9 5 6 815 8 23 6 2 87 5 9 15 8 321 4 14 15 24 131 4 5 8 9 65 8 7 96 2txtfile =1 8 9 5 6 815 8 23 6 2 87 5 9 15 8 321 4 14 15 24 131 4 5 8 9 65 8 7 96 2 ?A+txtfileans =2 16 18 10 12 1630 16 46 12 4 1614 10 18 30 16 642 8 28 30 48 262 8 10 16 18 1210 16 14 18 12 4 ?A-txtfileans =0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0 ?A*txtfileans =335 225 430 383 316 216 464 395 676 646 500 359 483 257 530 516 574 372 583 530 828 873 900 607 303 181 345 350 363 225 379 215 462 379 384 282 ?2*A+3*txtfileans =5 40 45 25 30 4075 40 115 30 10 4035 25 45 75 40 15105 20 70 75 120 655 20 25 40 45 3025 40 35 45 30 10 ?A'ans =1 15 7 21 1 58 8 5 4 4 89 23 9 14 5 75 6 15 15 8 96 2 8 24 9 68 8 3 13 6 2?txtfile/Aans =1.0000 0 0 0 0 00 1.0000 0 0 0 0-0.0000 0.0000 1.0000 -0.0000 0.0000 -0.00000.0000 -0.0000 0.0000 1.0000 -0.0000 -0.0000-0.0000 0.0000 -0.0000 -0.0000 1.0000 0.0000-0.0000 0.0000 -0.0000 -0.0000 0.0000 1.0000?det(A)ans =172040?inv(A)ans =0.3072 -0.1053 0.1918 0.0939 -0.5346 -0.10130.2260 -0.0823 0.0307 0.0287 -0.3019 0.0988-0.5492 0.2256 -0.3248 -0.1105 0.7671 0.19830.2514 -0.0955 0.2864 0.0190 -0.3329 -0.1780-0.5344 0.1472 -0.3939 -0.0534 0.7305 0.29480.7221 -0.2091 0.4271 0.1121 -0.8341 -0.4190?rank(A)ans =6三.解线性方程组奇次线性方程组求解?A=[1 -2 3 -4;0 1 -1 1;-1 0 -1 2;1 -3 4 -5];?a=null(A)a =0.5890 -0.5655-0.0117 0.57720.5655 0.58900.5772 0.0117?a=null(A,'r')a =-1 21 -11 00 1四.矩阵特征值与特征向量求矩阵特征值与特征向量?AA =1 -23 -40 1 -1 1-1 0 -1 21 -3 4 -5?[v,d]=eig(A)v =0.5843 0.7746 -0.2420 0.7674-0.1711 -0.2582 0.4132 -0.5231-0.2420 0.2582 -0.5843 -0.27890.7555 0.5164 -0.6552 0.2443d =-4.8284 0 0 00 -0.0000 0 00 0 0.8284 00 0 0 0.0000?a=eig(A)a =-4.8284-0.00000.82840.0000?B=[1 2 3 4 ;5 2 4 3;4 2 5 3;5 1 4 2]B =1 2 3 45 2 4 34 25 35 1 4 2?[vl,dl]=eig(A,B)vl =0.1553 1.0000 0.0694 0.2301-1.0000 -0.5758 1.0000 -0.6150-0.2213 -0.1515 -0.2466 -1.00000.7085 0.4242 -0.3920 -0.3850dl =-4.1242 0 0 00 -0.0000 0 00 0 4.6242 00 0 0 0.0000四、实验总结在这次实习中,实习了MATLAB基本数学运算和线性代数实验,通过这次实习,掌握了MATLAB的一些基本数学运算,并且熟悉了矩阵的各种运算,线性方程组的求解及特征值特征向量的求解。
MATLAB第二章实验报告
MATLAB数据及基本操作班级:11电信一班姓名:何得中学号:20111060108实验目的:1.熟悉MATLAB的组体成体系及工作环境;2.了解MATLAB的帮助系统;3.掌握MATLAB的数据类型及变量的基本操作;4.掌握矩阵建立的基本方法及其运算;5.掌握矩阵索引与分析方法;6.熟悉字符串单元及结构数据的建立及基本操作。
实验仪器:MA TLAB软件,电脑实验数据:>> A=[1 2 3;4 5 6;7 8 9]A = 1 2 34 5 67 8 9>> A=[1 2 34 5 67 8 9]A = 1 2 34 5 67 8 9>> x=0:pi/8:2*pi;>> y=cos(x)y = Columns 1 through 101.0000 0.9239 0.7071 0.3827 0.0000 -0.3827 -0.7071 -0.9239 -1.0000 -0.9239Columns 11 through 17-0.7071 -0.3827 -0.0000 0.3827 0.7071 0.9239 1.0000>> B=ones(3,5)B = 1 1 1 1 11 1 1 1 11 1 1 1 1>> zeros(3)ans = 0 0 00 0 00 0 0>> C=rand(3,4)C = 0.9501 0.4860 0.4565 0.44470.2311 0.8913 0.0185 0.61540.6068 0.7621 0.8214 0.7919>> D=randn(2,3)D = -0.4326 0.1253 -1.1465-1.6656 0.2877 1.1909>> eye(3)ans = 1 0 00 1 00 0 1>> M=magic(4)M = 16 2 3 135 11 10 89 7 6 124 14 15 1>> T=toeplitz(1:5,1:6)T = 1 2 3 4 5 62 1 234 53 2 1 2 3 44 3 2 1 2 35 4 3 2 1 2>> H=hilb(5)H = 1.0000 0.5000 0.33330.2500 0.20000.5000 0.3333 0.2500 0.2000 0.16670.3333 0.2500 0.2000 0.1667 0.14290.2500 0.2000 0.1667 0.1429 0.12500.2000 0.1667 0.1429 0.1250 0.1111>> a=3:18a =3 4 5 6 7 8 9 10 1112 13 14 15 16 17 18>> b=1:0.2:6b =Columns 1 through 91.0000 1.2000 1.4000 1.600 1.80002.0000 2.2000 2.4000 2.6000 Columns 10 through 182.80003.0000 3.2000 3.40003.6000 3.80004.0000 4.2000 4.4000 Columns 19 through 264.6000 4.80005.0000 5.20005.4000 5.6000 5.80006.0000>> linspace(1,15,10)ans =Columns 1 through 91.00002.5556 4.1111 5.6667 7.2222 8.7778 10.3333 11.8889 13.4444Column 1015.0000>> y=[0.9 0.3 0.4 0.1 0.5 0.6 0.2 ]; >> [sorted,index]=sort(y)sorted =0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.9000 index =4 7 2 3 5 6 1>> A=rand(4,5)A = 0.9218 0.9355 0.0579 0.13890.27220.7382 0.9169 0.3529 0.2028 0.19880.1763 0.4103 0.8132 0.1987 0.01530.4057 0.8936 0.0099 0.6038 0.7468>> [a,b]=min(A)a =0.1763 0.4103 0.0099 0.13890.0153b = 3 3 4 1 3>> min(A(:))ans = 0.0099>> V=[1 2 3 4]V = 1 2 3 4>> norm(V,2)ans =5.4772>> norm(V,1)ans = 10>> norm(V,inf)ans = 4>> V=[2 5 6 8 4 9]V = 2 5 6 8 4 9>> min(V)ans = 2>> V=[4 9 6;7 8 9;4 5 6]V = 4 9 67 8 94 5 6>> min(V)ans = 4 5 6>> max(V)ans = 7 9 9>> mean(V)ans = 5.0000 7.3333 7.0000>> median(V)ans = 4 8 6>> std(V)ans = 1.7321 2.0817 1.7321>> diff(V)ans =3 -1 3-3 -3 -3>> sort(V)ans =4 5 64 8 67 9 9>> length(V)ans = 3>> norm(V)ans =19.9125>> sum(V)ans = 15 22 21>> prod(V)ans =112 360 324>> cumsum(V)ans = 4 9 611 17 1515 22 21 >> cumprod(V)ans = 4 9 628 72 54112 360 324>> V=[1 2 8]V = 1 2 8>> U=[3; 4;7]U = 347>> dot(V,U)ans =67>> cross(V,U)ans =-18 17 -2>> A=[5 6 4;7 8 9;4 5 6]A = 5 6 47 8 94 5 6>> B=[6 2 7 ;7 5 8;4 6 8]B = 6 2 77 5 84 6 8>> C=A-BC = -1 4 -30 3 10 -1 -2>> C=A*BC = 88 64 115134 108 18583 69 116>> C1=A\BC1 =0.6667 -6.4444 -7.66670.6667 4.8889 7.3333-0.3333 1.2222 0.3333>> C2=B/AC2 = -3.0000 8.3333 -9.3333-1.6667 5.5556 -5.88890.0000 -1.3333 3.3333>> A=[1 2 3;4 5 6;7 8 9]A = 1 2 34 5 67 8 9>> D=A^2D = 30 36 4266 81 96102 126 150>> E=A^0.1E = 0.8466 + 0.2270i 0.3599 + 0.0579i -0.0967 - 0.1015i0.4015 + 0.0216i 0.4525 + 0.0133i 0.4432 - 0.0146i-0.0134 - 0.1740i 0.4848 - 0.0509i 1.0132 + 0.0820i>> A=[1+2*i 3;4 2+i]A =1.0000 + 2.0000i 3.00004.0000 2.0000 + 1.0000i>> A'ans = 1.0000 - 2.0000i 4.00003.0000 2.0000 - 1.0000i>> A=[1 2 3;4 5 6;7 8 9]A = 1 2 34 5 67 8 9>> B=[3 4 6;7 9 8;5 2 01]B = 3 4 67 9 85 2 1>> C=A.*BC = 3 8 1828 45 4835 16 9>> D=A./BD = 0.3333 0.5000 0.50000.5714 0.5556 0.75001.4000 4.0000 9.0000>> E=A.\BE = 3.0000 2.0000 2.00001.7500 1.8000 1.33330.7143 0.2500 0.1111>> A=[1+2*i 3;4 2+i]A = 1.0000 + 2.0000i 3.00004.0000 2.0000 + 1.0000i>> A.^2ans = -3.0000 + 4.0000i 9.000016.0000 3.0000 + 4.0000i>> A.'ans = 1.0000 + 2.0000i 4.00003.0000 2.0000 + 1.0000i>> x=0.1:0.1:0.8x =0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000>> y=sin(2*x).*cos(2*x)y =0.1947 0.3587 0.4660 0.4998 0.4546 0.3377 0.1675 -0.0292>> y=sin(x)y =0.0998 0.1987 0.2955 0.3894 0.4794 0.5646 0.6442 0.7174>> y=cos(x)y =0.9950 0.9801 0.9553 0.9211 0.8776 0.8253 0.7648 0.6967>> y=tan(x)y =0.1003 0.2027 0.3093 0.4228 0.5463 0.6841 0.8423 1.0296>> y=cot(x)y =9.9666 4.9332 3.2327 2.3652 1.8305 1.4617 1.1872 0.9712>> y=sec(x)y = 1.0050 1.0203 1.0468 1.0857 1.1395 1.2116 1.3075 1.4353>> y=csc(x)y = 10.0167 5.0335 3.3839 2.5679 2.0858 1.7710 1.5523 1.3940>> y=asin(x)y = 0.1002 0.2014 0.3047 0.4115 0.5236 0.6435 0.7754 0.9273>> y=acos(x)y = 1.4706 1.3694 1.2661 1.1593 1.0472 0.9273 0.7954 0.6435>> y=atan(x)y =0.0997 0.1974 0.2915 0.3805 0.4636 0.5404 0.6107 0.6747>> y=acot(x)y = 1.4711 1.3734 1.2793 1.1903 1.1071 1.0304 0.9601 0.8961>> y=asec(x)y =Columns 1 through 60 + 2.9932i 0 + 2.2924i0 + 1.8738i 0 + 1.5668i 0 +1.3170i 0 + 1.0986iColumns 7 through 80 + 0.8956i 0 + 0.6931i>> y=sinh(x)y =0.1002 0.2013 0.3045 0.4108 0.5211 0.6367 0.7586 0.8881>> y=cosh(x)y =1.0050 1.0201 1.0453 1.0811 1.1276 1.1855 1.2552 1.3374>> y=tanh(x)y = 0.0997 0.1974 0.2913 0.3799 0.4621 0.5370 0.6044 0.6640>> y=coth(x)y = 10.0333 5.0665 3.4327 2.6319 2.1640 1.8620 1.6546 1.5059>> y=sech(x)y = 0.9950 0.9803 0.9566 0.9250 0.8868 0.8436 0.7967 0.7477>> y=csch(x)y = 9.9834 4.9668 3.2839 2.4346 1.9190 1.5707 1.3182 1.1260>> y=asinh(x)y = 0.0998 0.1987 0.2957 0.3900 0.4812 0.5688 0.6527 0.7327>> y=acosh(x)y =Columns 1 through 60 + 1.4706i 0 + 1.3694i0 + 1.2661i 0 + 1.1593i 0 +1.0472i 0 + 0.9273iColumns 7 through 80 + 0.7954i 0 + 0.6435i>> y=atanh(x)y = 0.1003 0.2027 0.3095 0.4236 0.5493 0.6931 0.8673 1.0986>> y=acoth(x)y = Columns 1 through 60.1003 + 1.5708i 0.2027 + 1.5708i 0.3095 + 1.5708i 0.4236 + 1.5708i 0.5493 + 1.5708i 0.6931 + 1.5708i Columns 7 through 80.8673 + 1.5708i 1.0986 + 1.5708i >> y=asech(x)y = 2.9932 2.2924 1.8738 1.5668 1.3170 1.0986 0.8956 0.6931>> y=acsch(x)y = 2.9982 2.3124 1.9189 1.6472 1.4436 1.2838 1.1545 1.0476>> y=log(x)y =-2.3026 -1.6094 -1.2040 -0.9163 -0.6931 -0.5108 -0.3567 -0.2231>> y=log10(x)y = -1.0000 -0.6990 -0.5229 -0.3979 -0.3010 -0.2218 -0.1549 -0.0969>> y=log2(x)y =-3.3219 -2.3219 -1.7370 -1.3219 -1.0000 -0.7370 -0.5146 -0.3219>> c=complex(a,b)c = 0.1763 + 3.0000i 0.4103 + 3.0000i0.0099 + 4.0000i 0.1389 + 1.0000i 0.0153 + 3.0000i>> zc=conj(x)zc =0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000>> b=imag(x)b = 0 0 0 0 0 00 0>> a=real(x)a = 0.1000 0.2000 0.3000 0.40000.5000 0.6000 0.7000 0.8000>> y=fix(x)y = 0 0 0 0 0 0 0 0>> y=floor(x)y =0 0 0 0 0 0 0 0 >> y=ceil(x)y = 1 1 1 1 1 1 1 1>> y=round(x)y = 0 0 0 0 1 1 1 1>> y=sign(x)y = 1 1 1 1 1 1 1 1>> S=rats(x)S =1/10 1/5 3/10 2/5 1/2 3/5 7/10 4/5>> [N,D]=rat(x)N = 1 1 3 2 1 37 4D = 10 5 10 5 2 510 5>> A=[2 4 6;3 5 7;8 10 9]A = 2 4 63 5 78 10 9>> B=[4 1 5;7 5 0;9 3 6]B = 4 1 57 5 09 3 6>> A>Bans = 0 1 10 0 10 1 1>> A<Bans = 1 0 01 0 01 0 0>> A>=Bans = 0 1 10 1 10 1 1>> A<=Bans = 1 0 01 1 01 0 0>> A==Bans = 0 0 00 1 00 0 0>> A~=Bans =1 1 11 0 11 1 1>> A&Bans = 1 1 11 1 01 1 1>> A|Bans = 1 1 11 1 11 1 1>> ~Aans = 0 0 00 0 00 0 0>> ~Bans = 0 0 00 0 10 0 0>> x=0:pi/100:3*pi;>> y=sin(x);>> plot(x,y);>> y1=(x<pi|x>2*pi).*y;>> figure,plot(x,y1);>> r=(x>pi/3&x<2*pi/3)|(x>7*pi/3&8*pi/3);>> rn=~r;>> y2=r*sin(pi/3)+rn.*y1;>> figure,plot(x,y2)>> x=[0 4 5 9 8 6 74 85 7 4 85 8 4 5 8]x =0 4 5 9 8 6 74 85 7 4 85 8 4 5 8>> all(x)ans =0>> any(x)ans = 1>> find(x)ans =2 3 4 5 6 7 8 9 10 11 12 13 14 15>> isempty(x)ans =>> isglobal(x)Warning: isglobal is obsolete and will be discontinued. Type "help isglobal" for more details.ans =0>> isinf(x)ans =0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>> isnan(x)ans =0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>> isfinite(x)ans =1 1 1 1 1 1 1 1 1 1 1 1 1 1 1>> issparse(x)ans = 0>> isstr(x)ans =0>> not(x)ans =1 0 0 0 0 0 0 0 0 0 0 0 0 0 0>> y=[59 46 78 2 3 98 1 2 3 57 9 5 66 8 900 5]y =59 46 78 2 3 98 1 2 3 57 9 5 66 8 900 5>> y=[59 46 78 2 3 98 1 2 3 57 9 5 66 8 900 5]y = 59 46 78 2 3 98 1 2 3 57 9 5 66 8 900 5>> x=[0 4 5 9 8 6 74 85 7 4 85 8 4 5 8]x = 0 4 5 9 8 6 74 85 7 4 85 8 4 5 8>> A=[4 -40 2; 23 50 17;18 29 14]A = 4 -40 223 50 1718 29 14>> [r,c]=find(A>=20&A<=30)r = 23c = 12>> bitand(12,6)ans = 4>> bitshift(12,1)ans = 24>> bitxor(12,1)ans =13>> bitset(12,1)ans = 13 >> bitget(12,1)ans =0>> A =[ 87 59 56 85 66 21 12 35 62 64 69 88 99 81]A =87 59 56 85 66 21 1235 62 64 69 88 99 81>> A(2)ans =59>> A([1,2,8])ans =87 59 35>> A([9,6,2])ans =62 21 59>> A([end-4:end])ans =64 69 88 99 81>> A([1:5,5:-1:1])ans = 87 59 56 85 66 66 85 56 59 87>> A(3)=-1A = 87 59 -1 85 66 2112 35 62 64 69 88 99 81>> A(15)=-8A =87 59 -1 85 66 2112 35 62 64 69 88 99 81 -8>> A(20)=-1A = Columns 1 through 1687 59 -1 85 66 21 12 35 62 64 69 88 99 81 -8 0Columns 17 through 200 0 0 -1>> A=rand(8)A = 0.9501 0.8214 0.9355 0.13890.4451 0.8381 0.3046 0.37840.2311 0.4447 0.9169 0.2028 0.9318 0.0196 0.1897 0.86000.6068 0.6154 0.4103 0.1987 0.4660 0.6813 0.1934 0.85370.4860 0.7919 0.8936 0.6038 0.4186 0.3795 0.6822 0.59360.8913 0.9218 0.0579 0.2722 0.8462 0.8318 0.3028 0.49660.7621 0.7382 0.3529 0.1988 0.5252 0.5028 0.5417 0.89980.4565 0.1763 0.8132 0.0153 0.2026 0.7095 0.1509 0.82160.0185 0.4057 0.0099 0.7468 0.6721 0.4289 0.6979 0.6449>> A(3,3)ans =0.4103>> A(8)ans =0.0185>> sub2ind(size(A),3,3)ans =19>> [i,j]=ind2sub(size(A),19)i =3j =3>> A(:,4)ans =0.13890.20280.19870.60380.27220.19880.01530.7468>> A(3,:)ans =0.6068 0.6154 0.4103 0.1987 0.4660 0.6813 0.1934 0.8537>> A(end,:)ans =0.0185 0.4057 0.0099 0.7468 0.6721 0.4289 0.6979 0.6449>> A(3:4,5:6)ans =0.4660 0.68130.4186 0.3795>> A(2:2:4,1:2:5)ans =0.2311 0.9169 0.93180.4860 0.8936 0.4186>> A=reshape(A,5,5)A = 1 6 11 16 212 7 12 17 223 8 13 18 234 9 14 19 245 10 15 20 25>> A(:)'ans =Columns 1 through 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16Columns 17 through 2517 18 19 20 21 22 23 24 25>> A(:,1:2:5)=[]A = 6 167 178 189 1910 20>> A=[9 8 7;6 5 4;3 2 1];>> D=diag(A)D =951>> D1=diag(A,1)D1 =84>> D2=diag(A,-1)D2 =62>> V=[1 2 3 4];>> diag(V)ans = 1 0 0 00 2 0 00 0 3 00 0 0 4>> diag(1:3,-1)ans = 0 0 0 01 0 0 00 2 0 00 0 3 0>>A=[17,1,0,15;5,7,14,16;4,0,13,0;10,12,19,21]; >> D=diag(4:-1:1);>> D*Aans = 68 4 0 6015 21 42 488 0 26 010 12 19 21>> triu(A)ans =17 1 0 150 7 14 160 0 13 00 0 0 21>> triu(A,1)ans = 0 1 0 150 0 14 160 0 0 00 0 0 0>> B=A'B =17 5 4 101 7 0 120 14 13 1915 16 0 21>> rot90(A)ans =15 16 0 210 14 13 191 7 0 1217 5 4 10>> rot90(A,3)ans =10 4 5 1712 0 7 119 13 14 021 0 16 15>> B=fliplr(A)B = 15 0 1 1716 14 7 50 13 0 421 19 12 10>> B=flipud(A)B = 10 12 19 214 0 13 05 7 14 1617 1 0 15>> A=[4 5 6 9;7 8 9 5;4 5 6 9;7 8 9 5]; >> det(A)ans =0>> rank(A)ans =2>> cond(A)ans =1.0968e+017>> inv(A)Warning: Matrix is singular to working precision.ans = Inf Inf Inf InfInf Inf Inf InfInf Inf Inf InfInf Inf Inf Inf>> A=[4 8 9;8 2 7;6 3 8];>> inv(A)ans = 0.0568 0.4205 -0.43180.2500 0.2500 -0.5000-0.1364 -0.4091 0.6364>> [V,D]=eig(A)V = -0.6438 -0.7444 -0.5061-0.5467 0.6392 -0.5515-0.5354 0.1931 0.6631D = 18.2776 0 00 -5.2030 00 0 0.9254>> [U,S,D]=svd(A)U = -0.6378 0.7375 -0.2220-0.5426 -0.6348 -0.5500-0.5465 -0.2304 0.8051S = 18.9278 0 00 5.2884 00 0 0.8791D = -0.5374 -0.6639 -0.5200-0.4135 0.7449 -0.5236-0.7350 0.0663 0.6749>> [L,U]=lu(A)L = 0.5000 1.0000 01.0000 0 00.7500 0.2143 1.0000U = 8.0000 2.0000 7.00000 7.0000 5.50000 0 1.5714>> [Q,R]=qr(A)Q = -0.3714 0.9114 -0.1774-0.7428 -0.4063 -0.5322-0.5571 -0.0659 0.8278 R =-10.7703 -6.1279 -12.99870 6.2808 4.83140 0 1.3009>> a=1234a = 1234>> class(a)ans =double>> size(a)ans = 1 1>> b='1234'b =1234>> class(b)ans =char>> size(b)ans = 1 4>> 'I am astudent'ans =I am astudent>> a='This is No.2.23 Example!'a =This is No.2.23 Example!>> b=a(1:7)b =This is>> c=a(12:end)c =2.23 Example!>> a='Good';>> b='Noon';>> length(a)==length(b)ans = 1>> c=[a,'',b]c =GoodNoon>> d=[a;b]d =GoodNoon>> size(c)ans = 1 8>> size(d)ans = 2 4>> a='Good Noon';>> b=double(a)b = 71 111 111 100 32 78 111 111 110>> c='再见!'c =再见!>> c='再见!'>> d=double(c)d = 20877 35265 65281>> char(d)ans =再见!>> a='The first string';>> b='The second string';>> c=strcmp(a,b)c =0>> d=strncmp(a,b,4)d =1>> X='A friend in need is a friend indeed'; >> Y='friend';>> a=findstr(Y,X)a = 3 23>> b=strfind(Y,X)b = []>> S=['1 2 3';'2 3 4'];>> A=str2num(S)A = 1 2 32 3 4>> B=str2num('6-8i')B = 6.0000 - 8.0000i>> D=num2str(rand(2,3),6)D =0.950129 0.606843 0.8912990.231139 0.485982 0.762097>> d=189;>> h=dec2hex(d)h =BD>> c=dec2base(d,7)c =360>> b=dec2bin(d)b =10111101>> bin2dec(b)ans = 189>> A={ones(3,3,3),'Welcome';30.34,1:200} A = [3x3x3 double] 'Welcome'[ 30.3400] [1x200 double]>>B=[{ones(3,3,3)},{'Welcome'};{30.34},{1:20 0}]B = [3x3x3 double] 'Welcome'[ 30.3400] [1x200 double]>> C={5}C = [5]>> C(2,3)={7}C = [5] [] [][] [] [7]>> isequal(A,B)ans =1>> A={ones(3,3,3),'Welcome';30.34,1:200}; >> b=A(1,2)b = 'Welcome'>> class(B)ans =cell>> C=A{1,2}C =Welcome>> class Cans =char>> D=A{1,2}(6)D =m>> E=A{2,2}([end:-1:190])E =200 199 198 197 196 195 194 193 192 191 190>> class(E)ans =double>> N=A{3}([1 3 5 7])N =Wloe>> A={ones(3,3,3),'Welcome';30.34,1:200}; >> B=cell(2);>> B(:,1)={char('Good','Morning');1:10}B = [2x7 char ] [][1x10 double] []>> C=[A,B]C = [3x3x3 double] 'Welcome' [2x7 char ] [][ 30.3400] [1x200 double] [1x10 double] []>> D=[A,B;C]D = [3x3x3 double] 'Welcome' [2x7 char ] [][ 30.3400] [1x200 double] [1x10 double] [][3x3x3 double] 'Welcome' [2x7 char ] [][ 30.3400] [1x200 double] [1x10 double] []>> D(4,:)=[]D = [3x3x3 double] 'Welcome' [2x7 char ] [][ 30.3400] [1x200 double] [1x10 double] [][3x3x3 double] 'Welcome' [2x7 char ] []>> E=reshape(D,2,3,2)E(:,:,1) = [3x3x3 double] [3x3x3 double] [1x200 double][ 30.3400] 'Welcome' 'Welcome'E(:,:,2) = [2x7 char ] [2x7 char] [][1x10 double] [] []>>A={randn(3,3,2),'Good',pi;29,4+7*i,zeros(4)} A = [3x3x2 double] 'Good' [ 3.1416][ 29] [4.0000+ 7.0000i] [4x4 double]>> B=cellfun('isreal',A)B = 1 1 11 0 1>> C=cellfun('length',A)C = 3 4 11 1 4>> Member.code='09021';>> ='Liu';>> Member.age=22;>> Member.grade=uint16(3);>> MemberMember =code: '09021'name: 'Liu'age: 22grade: 3>> Member(4).name='Wang';>> Member(4).grade=2;>> Member(2)ans = code: []name: []age: []grade: []>>Memebr=struct('code','09021','name','Liu','a ge',22,'grade',uint16(3))Memebr = code: '09021'name: 'Liu'age: 22grade: 3>>Member=struct('code',{'09021','09034'},'name' ,{'Liu','Wamg'},'age',{22,24},'grade',{2,3}) Member = 1x2 struct array with fields:codenameagegrade>>Member=struct('code',{},'name',{},'age',{},'gr ade',{})Member = 0x0 struct array with fields:codenameagegrade>>Member=struct('code',{'09021','09034'},'na me',{'Liu','Wang'},'age',{22,24},'grade',{2,3},' score',{[78 89;90 68],[91 76;89 97]}) Member = 1x2 struct array with fields:codenameagegradescore>> Member(1).scoreans =78 8990 68>> Member(2).score(2,:)ans =89 97>> Member.codeans =09021ans =09034>> Member.('name')ans =Liuans =Wang>> ='Liu';M.ID=1;>> M(2,2).name='Wang';M(2,2).ID=2; >> M2=setfield(M,{2,1},'name','Zhang'); >> ans =Liuans =[]ans = []ans =Wang>> ans =Liuans =Zhangans = []ans =Wang>> fieldnames(M)ans = 'name''ID'>> M3=orderfields(M)M3 = 2x2 struct array with fields:IDname。
Matlab实验报告_2
实验一 Matlab基础知识一、实验目的:1.熟悉启动和退出Matlab的方法。
2.熟悉Matlab命令窗口的组成。
3.掌握建立矩阵的方法。
4.掌握Matlab各种表达式的书写规则以及常用函数的使用。
二、实验内容:1.求[100,999]之间能被21整除的数的个数。
(rem)2.建立一个字符串向量,删除其中的大写字母。
(find)3.输入矩阵,并找出其中大于或等于5的元素。
(find)4.不采用循环的形式求出和式6312ii=∑的数值解。
(sum)三、实验步骤:●求[100,199]之间能被21整除的数的个数。
(rem)1.开始→程序→Matlab2.输入命令:»m=100:999;»p=rem(m,21);»q=sum(p==0)ans=43●建立一个字符串向量,删除其中的大写字母。
(find)1.输入命令:»k=input('’,’s’);Eie48458DHUEI4778»f=find(k>=’A’&k<=’Z’);f=9 10 11 12 13»k(f)=[ ]K=eie484584778●输入矩阵,并找出其中大于或等于5的元素。
(find)1.输入命令:»h=[4 8 10;3 6 9; 5 7 3];»[i,j]=find(h>=5)i=3 j=11 22 23 21 32 3●不采用循环的形式求出和式的数值解。
(sum)1.输入命令:»w=1:63;»q=sum(2.^w)q=1.8447e+019实验二 Matlab 基本程序一、 实验目的:1. 熟悉Matlab 的环境与工作空间。
2. 熟悉M 文件与M 函数的编写与应用。
3. 熟悉Matlab 的控制语句。
4. 掌握if,switch,for 等语句的使用。
二、 实验内容:1. 根据y=1+1/3+1/5+……+1/(2n-1),编程求:y<5时最大n 值以及对应的y 值。
matlab专业实习报告
MATLAB专业实习报告引言本报告旨在总结我的MATLAB专业实习经历,介绍我在实习期间所学习到的知识和技能,并对实习过程中的困难和解决方案进行讨论。
实习目标在此次MATLAB专业实习中,我的主要目标是:1.掌握MATLAB编程语言的基本语法和使用方法;2.学习MATLAB在数据分析和可视化方面的应用;3.深入了解MATLAB在工程领域的应用,并学会解决实际问题;4.增强团队合作和沟通能力。
实习过程第一阶段:学习基础知识在实习开始之前,我花了一段时间系统地学习了MATLAB编程语言的基础知识。
我通过阅读MATLAB官方文档、参加在线培训课程和解决练习题来提高自己的编程能力。
第二阶段:数据分析和可视化在掌握了基础知识后,我开始学习MATLAB在数据分析和可视化方面的应用。
我学习了如何导入和处理各种类型的数据,并使用MATLAB内置函数进行统计分析和可视化展示。
第三阶段:工程实践在第二阶段的基础上,我开始将所学知识应用到实际工程问题中。
我参与了一个工程项目,该项目是开发一个用于控制系统设计的MATLAB工具。
在项目中,我与团队成员合作,负责编写代码、进行测试和提供技术支持。
第四阶段:总结与展望在实习的最后阶段,我对整个实习过程进行了总结,并对未来的学习和发展提出了展望。
通过这次实习,我不仅学到了MATLAB编程的基本知识和技能,还锻炼了自己的团队合作和沟通能力。
遇到的困难与解决方案在实习过程中,我也遇到了一些困难,例如: 1. 理解复杂的MATLAB函数和算法;2. 处理大型数据集时的内存限制问题;3. 与团队成员协调工作和解决问题。
针对这些困难,我采取了以下解决方案: 1. 通过仔细阅读MATLAB官方文档和参考书籍,结合在线资源和论坛寻求帮助,逐步理解复杂函数和算法的原理和用法; 2. 优化代码和采用分块处理的方法,以减少内存占用; 3. 主动与团队成员交流,及时沟通问题并寻求解决方案。
结论通过这次MATLAB专业实习,我不仅学到了专业知识和技能,还提高了自己的问题解决和团队合作能力。
matlab实验报告实验二
matlab实验报告实验二Matlab实验报告实验二引言Matlab是一种功能强大的数学软件,广泛应用于科学研究和工程实践中。
在实验二中,我们将探索Matlab的图像处理功能,并通过实际案例来展示其应用。
图像处理基础图像处理是指对图像进行数字化处理的过程,其目的是改善图像质量、提取有用信息或实现特定的应用需求。
在Matlab中,我们可以利用各种函数和工具箱来实现图像处理的各种任务,如图像增强、滤波、分割和特征提取等。
实验步骤1. 图像读取与显示在Matlab中,我们可以使用imread函数读取图像文件,并使用imshow函数将图像显示在屏幕上。
例如,我们可以读取一张名为"lena.jpg"的图像,并显示出来:```matlabimg = imread('lena.jpg');imshow(img);```2. 图像灰度化图像灰度化是将彩色图像转换为灰度图像的过程。
在Matlab中,我们可以使用rgb2gray函数将彩色图像转换为灰度图像。
例如,我们可以将上一步读取的图像转换为灰度图像:```matlabgray_img = rgb2gray(img);imshow(gray_img);```3. 图像二值化图像二值化是将灰度图像转换为二值图像的过程,其中只包含黑色和白色两种颜色。
在Matlab中,我们可以使用imbinarize函数将灰度图像二值化。
例如,我们可以将上一步得到的灰度图像二值化:```matlabbinary_img = imbinarize(gray_img);imshow(binary_img);```4. 图像平滑图像平滑是指去除图像中的噪声或细节,使得图像更加平滑和清晰。
在Matlab 中,我们可以使用imfilter函数对图像进行平滑处理。
例如,我们可以对上一步得到的二值图像进行平滑处理:```matlabsmooth_img = imfilter(binary_img, fspecial('average'));imshow(smooth_img);```5. 图像边缘检测图像边缘检测是指提取图像中物体边缘的过程,常用于目标检测和图像分割。
MATLAB第二章实验报告
深 圳 大 学 实 验 报 告课程名称: MATLAB实验名称: MATLAB 的数值计算学 院:指导教师:报告人: 组号:学号 实验地点实验时间: 年 月 日提交时间:二、内容和步骤1.创建矩阵(1)直接输入(2)用from:step:to方式(3)用linspace函数:(4)使用特殊矩阵函数,并修改元素(5)获取子矩阵块:.练习:b=logspace(0,4*3.14,20)b =1.0e+12 *1 至17 列0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0004 0.0018 0.0082 0.037718 至20 列0.1729 0.7924 3.63082.矩阵运算:(1)利用矩阵除法解线性方程组(2)利用矩阵的基本运算求解矩阵方程练习:(3)计算矩阵的特征值和特征向量。
验证特征值和特征向量与该矩阵的关系练习:将矩阵的乘除运算改为数组的点乘和点除运算:(4)利用数学函数进行矩阵运算w=logspace(-2,1,10)w =0.0100 0.0215 0.0464 0.1000 0.2154 0.4642 1.0000 2.1544 4.6416 10.0000LW=-20*log10(sqrt((2*w).^2 + 1))LW =-0.0017 -0.0081 -0.0373 -0.1703 -0.7396 -2.6993 -6.9897 -12.9151 -19.4040 -26.0314FW=-atan(2*w)*180/piFW =-1.1458 -2.4673 -5.3037 -11.3099 -23.3106 -42.8711 -63.4349 -76.9341 -83.8517 -87.13763.生成多维数组:c(18)=[]c =1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8练习:使用数组c编辑窗口查看变量a,b和c。
MATLAB原理及应用实验报告第二章
《MATLAB原理及应用》实验报告实验二数组(矩阵)及其运算一.实验目的1、掌握MATLAB软件环境下进行的数值数组(矩阵)的创建和访问的基本方法。
2、掌握数值数组(矩阵)的算术运算、逻辑运算二.实验设备计算机、MATLAB软件三.实验内容1.矩阵的创建(1)矩阵的创建方法1:输入元素列表①矩阵行中的元素以空格()或逗号(,)间隔②矩阵行之间用分号(;)或回车(enter)间隔③整个元素列表用方括号([])括起来>> a=[1 2 3;4 5 6;7 8 9]>> a=[1:3;4:6;7:9];a1=1:6%用冒号(:)可以操作简便方法2:利用MATLAB内部函数产生矩阵>>b=eye(3)>>c=ones(2,5)>>d=zeros(3,2)>>e=linspace(-3,6,10)>>f=logspace(0,4,5)>>r=rand(1,6) %产生[0,1]之间均匀分布的随机向量R(1×6)(2)矩阵元素的提取与替换在MATLAB中,矩阵中元素可以通过其在矩阵中的行标和列标来确定。
对矩阵中的元素进行提取与替换,也可以按行标和列表进行。
【实验2-1】在命令窗口输入:>>A=[1,2,3;4,5,6]运行后显示:A =1 2 34 5 6在命令窗口输入:>>b=A(1,2)运行后显示:b =2在命令窗口输入:>>A(2,3)=-3运行后显示:A =1 2 34 5 -3(3)矩阵的操作>>A=[1,2,3;4,5,6;7,8,9]>>B=diag(A)%X为矩阵时,V=diag(X,k)得到列向量V,它取自X的第K个对角线的元素, %k=0,表示主对角线,等同于V=diag(X)>>C=diag(B) %产生对角阵>>D=rot90(A) %将矩阵A逆时针旋转90度。
matlab实习报告总结
MATLAB实习报告总结介绍本文是对我在MATLAB实习过程中的总结与反思。
通过这次实习,我对MATLAB的使用有了更深入的了解,并且对实际问题的解决能力也有了提升。
实习目标在实习开始之前,我设定了以下几个目标: 1. 熟悉MATLAB的基本语法和常用函数; 2. 学习如何使用MATLAB解决实际问题; 3. 提升自己的编程能力和解决问题的思维能力。
实习过程第一阶段:熟悉MATLAB基本语法在实习开始之初,我花了一段时间来学习MATLAB的基本语法。
通过阅读官方文档和参考书籍,我了解了MATLAB的变量定义、矩阵运算、函数定义等基本概念和用法。
我利用空闲时间编写了一些简单的代码来巩固这些知识。
第二阶段:学习MATLAB的常用函数在熟悉基本语法之后,我开始学习MATLAB的常用函数。
我学习了MATLAB 中的统计分析函数、数据可视化函数、图像处理函数等。
通过学习这些函数,我可以更高效地处理和分析数据,同时也能够更好地展示我的结果。
第三阶段:实际问题的解决在掌握了MATLAB的基本语法和常用函数后,我开始尝试使用MATLAB解决一些实际问题。
我选择了一个与我的专业相关的问题,通过MATLAB对数据进行分析和建模。
在这个过程中,我遇到了一些困难和挑战,但通过查阅资料和请教同学,我最终成功解决了这些问题。
第四阶段:编程能力和思维能力的提升通过这次实习,我的编程能力和解决问题的思维能力得到了提升。
在实际问题的解决过程中,我学会了如何分析问题、设计算法、编写代码并调试。
通过与同学的讨论和交流,我也学会了如何思考和解决问题的不同角度。
总结与反思这次MATLAB实习让我受益匪浅。
通过实际操作,我深入了解了MATLAB的使用方法和技巧。
我学会了如何使用MATLAB解决实际问题,并且在这个过程中提升了自己的编程能力和解决问题的思维能力。
然而,我也发现了自己的不足之处。
在实习过程中,我有时会陷入“死记硬背”的状态,只注重语法和函数的使用,而不去思考问题背后的本质,这导致我在解决一些复杂问题时遇到了困难。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
佛山科学技术学院《MATLAB教程第二章实训》报告专业姓名成绩班级学号日期一、目的1.学习matlab的数据类型2.矩阵和数组的算术运算3.字符串4.时间和日期5.结构体和元胞数组6.多维数组7.逻辑运算和关系运算8.数组的信息获取9.多项式二、步骤1.学习matlab的数据类型Matlab R2010a定义了15种基本的数据类型,包括整型、浮点型、字符型和逻辑型等。
用户甚至可以定义自己的数据类型。
Matlab内部的任何数据类型,都是按照数组的形式进行储存和运算的。
数值型包括整数和浮点数,其中整数包括有符号数和无符号数,浮点数包括单精度型和双精度型。
在默认情况下,matlab默认将所有数值都按照双精度浮点数类型来存储和操作。
(1)常数和变量Matlab的常数采用十进制表示,可以用带小数点的形式直接表示,也可以用科学记数法。
数值的表示范围是10^-309-10^309。
变量是数值计算的基本单元。
Matlab与其他的高级语言不同,变量使用是无需先定义,其名称就是第一次合法出现时的名称,因此用起来很便捷。
Matlab的变量命名有一定的规则:a.变量区分字母的大小写。
例如,“a”和“A”是不同的变量。
b.变量名不能超过63个字符,第63个字符后的字符会被忽略。
c.变量名必须以字母开头,变量名的组成可以是任意字母、数字或者下划线,但不能有空格和标点符号。
d.关键字(如if\while等)不能作为变量名。
在matlab中的所有表示符号包括函数名、文件名都是遵循变量名的命名规则。
Matlab中有一些自己的特殊变量,是由系统预先自动定义的,例如:ans——运算结果的默认变量名Pi——圆周率πEps——浮点数的相对误差Inf或inf——无穷大Nan或nan——不定值i或j——i=j=-1^1/2,虚数单位Nargin——函数的输入变量数目Nargout——函数的输出变量数目Realmin——最小的可用正实数Realmax——最大的可用正实数(2)整数和浮点数Matlab提供了8种内置的整数类型,为了在使用时提高运行速度和存储空间,应该尽量使用字节少的数据类型,可以使用类型转换函数将各种整数类型强制相互转换。
浮点数包括了单精度型和双精度型,双精度型为matlab默认的数据类型,单精度型4B,双精度型8B。
在工作空间窗口中可以看到各变量在存储空间占的字节数。
整数和浮点数相乘运算后的结果仍是整数。
(3)复数复数包括实部和虚部,matlab用特殊变量“i”和“j”表示虚数单位的单位,因此注意在编程时不要把i和j变量另外赋值。
复数运算不需要特殊处理,可以直接进行。
Matlab中关于复数的运算函数有以下关系:Real(z)返回复数z的实部 angle(z)返回复数z的幅角Imag(z)返回复数z的虚部 abs(z)返回复数z的模Conj(z)返回z的共轭复数 complex(a,b)以a和b分别作为实部和虚部,创建复数。
2.矩阵和数组的算术运算Malab中的数组可以说是无处不在的,任何变量都是以数组是以数组形式存储和运算的。
在matlab的运算中,经常要使用到标量、向量、矩阵和数组。
关于名称如下:a.空数组:没有元素的数组b.标量:是指1*1的矩阵,即为只含一个数的函数c.向量:是指1*n或n*1的矩阵,即只有一行或者一列的矩阵d.矩阵:是一个矩形的m*n数组,即二维数组e.数组:是指多维数组m*n*k*......,其中矩阵和向量都是数组的特征(1)数组的创建在matlab中矩阵的创建应遵循以下基本常规:1)矩阵元素应用方括号括住2)每行内的元素间用逗号或空格隔开3)行与行之间用分号或回车键隔开4)元素可以是数值或表达式空数组是不包含任何元素的数组,可以用于数组的声明、清空数组以及编辑运算。
创建空数组:a=[],空数组是占0字节的双精度数组。
向量包括行向量和列向量,即1*n或n*1的矩阵,也可以看成在某个方向为1的特殊矩阵。
使用from:step:to方式生成向量,如果是等差的行向量,可以使用“from:step:to”方式生成。
命令格式:from:step:to。
Step为负数时可以创建降序的数组。
使用linspace和lonspace函数生成变量与from:step:to方式不同。
Linspace和logspace函数直接给出元素的个数,linspace用来生成线性等分量,logspace用来生成对数等分量,logspace函数可以用于对数坐标的绘制。
Linspace(a,b,n)——生成线性等分量,logspace(a,b,n)——生成对数等分量。
说明:a.a、b、n这3个参数分别表示开始值、结束值和元素个数。
b.Linspace函数生成从a到b之间线性分布的n个元素的行向量,n如果省略则默认值为100.c.Logspace函数生成成10^a到10^b之间按对数等分的n个元素的行向量,n如果省略则默认值为50。
矩阵是m行n列的二维数组,需要使用[]、,、;、空格等符号创建。
部分特殊矩阵:Magic(n):产生n阶魔方矩阵(矩阵的行、列和对角线上元素的和相等)Eye(m,n):产生m*n的单位矩阵,对角线全为1。
Zeros(d1,d2,d3...):产生d1*d2*d3...的全为0。
Ones(d1,d2,d3,...):产生d1*d2*d3....的全1数组。
Rand(d1,d2,d3,...):产生均匀分布的随机数组,元素取值范围0.0-1.0。
Randn(d1,d2,d3,...):产生正态分布的随机数组。
(2)数组的操作Matlab中的数组可以在数组编辑器窗口中修改。
还可以使用命令来对数组的元素进行修改。
对数组中元素的引用可以使用全下标方式和单下标方式。
1)全下标方式:全下标方式是指n维数组中元素通过n个下标来引用,元素表示为a(d1,d2,d3)。
例如,矩阵的元素通过行下标和列下标表示,一个m*n的a矩阵的第i行第j列的元素表示为a(i,j)。
如果在引用矩阵元素值时,矩阵元素的下标(i,j)大于矩阵的大小(m,n),则matlab 会提示出错。
2)单下标方式:数组元素用单下标引用,就是把数组的所有列按先左后右的次序连接成“一维长列”,然后对元素位置进行编号。
自矩阵是由矩阵中取出一部分元素构成的。
数组的赋值:数组的赋值包括全元素方式,全下标方式和单下标方式。
a.全下标方式:a(i,j,坑,。
)=b,给a数组的部分元素赋值,则b数组的行列数必须等于a数组的行列数。
b.单下标方式:a(n)=b,b为向量,元素个数必须等于a矩阵的元素个数。
c.全元素方式:a=b,给a数组的所有元素赋值,则b数组的元素总数必须等于a矩阵的元素总数,但行列数不一定相等。
矩阵的合并就是把两个以上的矩阵连接一起得到一个新的矩阵。
在matlab中可以对数组中的单个元素、子矩阵和所有元素进行删除操作,删除就是将其赋值为空矩阵。
(3)矩阵和数组函数Matlab还提供了大量的大量内部函数对数组进行操作,包括矩阵的行列式运算、数组的翻转和查找、统计等。
矩阵就是二维数组,矩阵的运算有一定的特殊性。
Matlab中数组查找函数是find,用来查找数组中的非零向量并返回其下标。
一般用于在比较命令后面查找非零向量。
查找数组x中的非零向量,[a,b,...]指非零元素的全下标,如果返回一个参数n,则查找非零向量的单下标。
(4)矩阵和数组的运算Matlab的二维数组和矩阵从外观和结构上没有区别,矩阵的运算规则是按照线性运算法则定义的。
但有严格的数学规则;而数组运算是按数组的元素逐个进行的。
数组加减乘除乘方和转置运算又称为点运算,其加减乘除和乘方都是对两个尺寸相同的数组进行元素间的运算。
数组的加减运算和矩阵的加减运算完全相同,运算符与完全相同。
在数组乘方运算中,如果a为数组,b为变量,则计算结果为与a尺寸相同的数组,该数组是a的每个元素求b次方;如果a为标量,b为数组,则计算结果为a尺寸相同的数组,该数组是以a为底的各元素为指数的幂。
在数组的转置中,如果数组a为复数数组,则不是共轭装置。
(5)稀疏矩阵一个矩阵中如果包含很多0元素,则此矩阵可以只储存少量的非零元素,这个矩阵称为稀疏矩阵。
在matlab中,矩阵的储存方式有两种:全元素矩阵和稀疏矩阵。
全元素矩阵经过计算仍是全元素矩阵。
稀疏矩阵的创建需要专门的定义。
在matlab中,一个稀疏矩阵秩存储每个非零元素的下标和元素值。
对于一个m*n的稀疏矩阵,如果有nnz个非零元素,则matlab使用三个内部数组来储存此稀疏矩阵的信息。
a.第一个数组:以double型储存nnz个非零元素的实部,使用8*nnz个字节。
b.第二个数组:一整型储存nnz个非零元素每个元素的行下标,使用4*nnz个字节。
c.第三组数组:以整型储存每个列的起始指针共n个列,以double型存储nnz个非零元素虚部的值。
3.字符串对于matlab的编程来说,字符串处理是必不可少,matlab提供了很多功能强大的字符处理函数。
字符串是由多个字符串组成,是1*n的字符串;每一个字符串都是字符数组的一个元素。
Matlab在储存字符串时,每一个字符一ascii码的形式存放,占用两个字节。
4.时间和日期在matlab中可以对日期时间变量进行处理,实现获取系统时间、在程序中使用时间函数来计时。
日期格式转换:a.Datestr:讲日期格式转换为日期字符串格式b.Datenum:将日期格式转换为连续的日期数值格式c.Datevec:将日期格式转换为连续的日期向量格式Matlab中获取系统时间的函数有1)Date:按照日期字符串格式获取当时系统时间2)Now:按照连续的日期数值格式获取当前系统时间。
3)Clock:按照日期向量格式获取当前系统时间。
5.结构体和元胞数组元胞数组是常规值数组的扩展,其基础元素是元胞,每一个元素可以看成是一个单元,用来存放各种不同类型不同尺寸的数据。
元胞数组可以是一维,二维或多维。
结构体也可以储存多种类型的数据。
结构体可以有多个字段,比元胞数组内容更加丰富,应用更广泛。
结构体的基本组成是结构,每一个结构体都包含多个字段,结构体只有划分了字段以后才能使用。
6.多维数组多维数组是指下标多余两个的数组。
空数组,向量,矩阵都是数组的特征,矩阵表示行、列组成的面。
三维数组是二维数组的扩展,二维数组是由行和列组成的面,三维数组是用三个下标表示,三维数组可以看成行列和页构成的“长方形”。
7.逻辑运算和关系运算Matlab中逻辑运算数据只有1和0,分别表示对和错两种状态,逻辑型变量只占1个字节。
在matlab的关系运算和逻辑运算中中,都要使用到逻辑型变量。
关系运算规则:a.如果比较的两个变量都是标量,则结果为1或0。