MATLAB笔记总结(1) 东华大学MOOC |
您所在的位置:网站首页 › matlab循环语句if › MATLAB笔记总结(1) 东华大学MOOC |
https://zhuanlan.zhihu.com/p/266263265 https://blog.csdn.net/shaozheng0503/article/details/130305984?spm=1001.2014.3001.5501 表达式 分号;) 逗号(, ), 省略号(3个英文句点…)。 历史指令调用:用方向键(↑↓) 数据显示格式 format short format long format rational 显示格式与计数精度区别 复数 i, j 预定义变量 pi 圆周率3.1415… eps 浮点数识别精度2.22×10-16 realmin 最小正实数2.2251×10 -308 realmax 最大正实数1.7977×10308 Inf 无穷大 NaN 不定值 用户变量 命名规则:字母开头,由字母、数字或下划线组成,区分大小写 (能有标点符号吗?)防止与系统的预定义变量名(如i, j, pi, eps等),函数名(如who, length等),保留字(for, if , while, end 等)冲突。 特殊变量ans 是系统本身一个特殊变量名,若运算结果没有赋 于任何变量,系统将其赋予ans clear 清除(注意Clear Workspace与Clear Command Window的区别.) 数据文件 实现与外部数据文件交换: mat, txt等 菜单方式:Save Workspace和Import Data 例 : save-clear-import 指令方式:save 和 load C语言方式: fprintf, fsacnf,fopen, fread 例 : file = fopen(‘ceg.txt’,‘w’); fprintf(file,‘%12.8f %6.2f\n’,[pi, 2*pi]); fclose(file); 用load或import data调用 数组及其运算a=[1 2 3;4 5 6;7 8 9] 中括号[ ]表示矩阵,同行元素间用空格或逗号 分隔,不同行间用分号或回车分隔。 冒号运算 函数linspace(x1,x2,n) 生成x1与x2间的n维等距 行向量,即将[x1,x2] n-1等分 length, size 编址:不能为0,按列编址, 如a(6) 查询、更改(a(m,n)),提取(a([1,3,2])), 拼接( [A, B]、 [A; B] ), 删除(A(i1:i2 , : )=[ ]) sum, prod, min, max 特殊矩阵 零矩阵(zeros(m,n)), 壹矩阵(ones(m,n)),单位矩阵 (eye(m,n)) 导入外部Excel数据文件 剪贴板+Array Editor 菜单import data 数组运算 A+B与A-B 加与减 kA或Ak 数乘矩阵 k+A与k-A k加(减)A的每个元素 A.^k , k.^A 数组乘方 A.*B 数组乘数组 k./A 数除以数组 左除A.\B=右除B/.A 数组除法 点运算就是对应元素的运算 例(注意点运算与矩阵运算的区别) 数学函数 矩阵的数学函数也是按元素的运算,使用通常的函数号, 如sin(A), cos(A), asin(A) , acos(A)tan(A),cot(A), exp(A), sqrt(A)等。 fix 向0取整 floor 向 -∞取整 ceil 向+∞取整 mod 模除求余 rem 除法余数 abs 绝对值(模) real 复数实部 imag 复数虚部 angle 复数幅角 conj 复数共轭 log 自然对数 ln log10 以10为底对数 关系与逻辑运算 < 、 = 大于、大于等于 = = 、 ~ = 等于、不等于 &(与)、|(或)、~ (非) any、all 、find 在MATLAB中,“真”用1表示,“假”用0,而逻辑运算中,所有非零元素作为1处理 数据类型:数值(Double) 逻辑(Logical) 字符(Char) 元胞(Cell) 结构(Structure) 字符串单引号(英文半角输入状态!) 中文字符: a=‘清心明目’, b=a([4: -1:1]) 不要在word中输入后copy (单引号改变!) 引号内字符显示应为淡紫色 字符串拼接: t=‘好吗?’, c=[a([3,4,1,2]), t] 字符串转化double, char, num2str, str2num 比较:a=’12’,b=double(a),c=str2num(a) eval执行字符串书写的指令(例) 元胞和结构数值与字符混合 元胞 { } 结构: 域的概念 struct2cell和cell2struc 2.1 程序设计M脚本文件 函数文件 其它 分支语句 if(条件式), 语句; end if(条件式1), 语句1; elseif (条件式2), 语句 2; ……;else, 语句;end switch(分支变量)case(值1), 语句1;case(值2), 语句 2;……;otherwise 语句;end 循环语句 for 循环变量=初值:增量:终值, 语句;end while(条件式), 语句;end 其它:pause, break, return, error M脚本文件 M脚本文件通常是一种Matlab脚本文件,它包含一组MATLAB命令和函数,可用于执行特定的操作。由于MATLAB是一种计算机语言和开发环境,其主要用于工程学、科学研究和数据分析等领域,因此M脚本文件通常用于执行这些领域的任务。 M脚本文件可以使用任何文本编辑器创建,例如Windows记事本或Notepad++。它们以“.m”作为文件扩展名,并使用MATLAB软件来编译和运行。 创建一个M脚本文件非常简单,只需在文本编辑器中打开新文件并按照所需的命令格式输入MATLAB代码即可。例如,以下是一个简单的M脚本示例,可用于计算圆的面积: ``` % This is a comment in the M script file r = 5; % radius of the circle area = pi*r^2; % calculate the area disp(['The area of the circle is ', num2str(area)]) % display the result ``` 在此示例中,该脚本文件定义了圆的半径,并使用MATLAB内置的pi函数和幂运算符计算圆的面积。最后,使用disp函数在命令窗口中显示结果。 M脚本文件是MATLAB编程语言中的基本元素之一,是许多MATLAB程序的基础。 调用M脚本文件通常需要使用MATLAB软件。你可以通过以下步骤来调用一个M脚本文件: 1. 在MATLAB软件中打开“当前文件夹”窗口,这可以通过在命令窗口中输入“cd”命令或使用菜单选项“Current Folder”来实现。 2. 将M脚本文件移动到打开的“当前文件夹”窗口中。 3. 在命令窗口中输入M脚本文件的名称,然后按下回车键即可执行该脚本。例如,如果文件名为“myscript.m”,则可以在命令窗口中输入“myscript”并按下回车键。 4. MATLAB将加载并运行M脚本文件中的所有命令和函数。你可以在命令窗口中查看输出结果,并在必要时更改M脚本文件中的代码。 此外,还可以通过在MATLAB中创建一个函数句柄来调用M脚本文件,或者通过使用适当的命令将M脚本文件作为其他MATLAB程序的一部分进行调用。 调用M脚本文件通常需要使用MATLAB软件。你可以通过以下步骤来调用一个M脚本文件: 1. 在MATLAB软件中打开“当前文件夹”窗口,这可以通过在命令窗口中输入“cd”命令或使用菜单选项“Current Folder”来实现。 2. 将M脚本文件移动到打开的“当前文件夹”窗口中。 3. 在命令窗口中输入M脚本文件的名称,然后按下回车键即可执行该脚本。例如,如果文件名为“myscript.m”,则可以在命令窗口中输入“myscript”并按下回车键。 4. MATLAB将加载并运行M脚本文件中的所有命令和函数。你可以在命令窗口中查看输出结果,并在必要时更改M脚本文件中的代码。 此外,还可以通过在MATLAB中创建一个函数句柄来调用M脚本文件,或者通过使用适当的命令将M脚本文件作为其他MATLAB程序的一部分进行调用。matlab中的函数文件 MATLAB中的函数文件是一种用于封装代码或算法的文件类型。MATLAB函数包含一组指令和变量,它们可以被主程序或其他代码所调用以执行特定的任务。 MATLAB函数与脚本文件不同,因为函数具有输入和输出参数,并且通常用于重复使用和模块化编程。MATLAB函数文件由以下三部分组成: - 函数声明行 - 函数体 - 输出语句 下面是一个简单的例子,说明如何创建一个MATLAB函数文件来计算两个数的乘积: ``` function mult_result = multiply(num1, num2) % FUNCTION to calculate the product of two numbers % INPUTS : num1 and num2 are input parameters of the function % OUTPUT : mult_result is the result of multiplying num1 to num2 mult_result = num1 * num2; % perform multiplication end ``` 以上函数声明行中“function”关键字定义了一个名为“multiply”的函数,其可接收两个输入参数“num1”和“num2”。该函数的输出结果存储在变量“mult_result”中,并最后返回该结果。 将上述代码保存为以“.m”结尾的文本文件,以便作为MATLAB函数文件使用。然后,你可以通过键入函数名称和输入参数来调用该函数。例如,下面的命令可以调用该函数并将输出打印到命令行窗口: ``` >> a = 3; >> b = 4; >> c = multiply(a, b); >> disp(c); 12 ``` MATLAB中的函数文件可以直接通过函数名称调用,也可以作为另一个程序或脚本文件的一部分调用。 不同的语句分析以及基本概念解释
编写M函数eg2_1f.m 函数句柄fname=@eg2_1f; feval (fname,1000)或者fname(1000) 注意feval与eval的区别 >>m=1000; >>str= 'sum(1./(1:m).^2'; >>eval(str) inline函数与匿名函数 inline函数 fun=inline(‘函数表达式’, ‘自变量’) >> fname=inline('sum(1./(1:m).^2)','m') >> fname(1000) 匿名函数 fun=@(自变量)函数表达式 匿名函数的参数传递更灵活 >> k=2; fname=@(m)sum(1./(1:m).^k) >> fname(1000)解释 MATLAB中的inline函数和匿名函数都可以用于创建轻量级的小型函数,但它们之间仍然有一些不同之处。 1. inline函数 inline函数是一个用于逐元素数学运算的函数,其中输入输出变量必须使用列向量。它们通常用于快速编写简单数学表达式的程序。需注意的是,从MATLAB 2016a开始,已不再推荐使用inline函数,现在建议使用匿名函数或函数句柄来代替。 以下是inline函数的一个例子: ``` f = inline('sin(x)^2 + cos(x)^2') x = -pi:0.01:pi; y = f(x); plot(x,y) title('Output of Inline Function') ``` 在上面的程序中,我们使用inline函数定义一个用于计算“sin(x)^2 + cos(x)^2”的函数,并将其存储在变量“f”中。然后我们定义一系列变量并将其传递给函数,最终通过“plot”函数绘制输出结果。 2. 匿名函数 匿名函数是一种便于创建短小精悍的函数的方式,它们可以被重复使用和模块化编程。与inline函数使用字符串输入不同,匿名函数使用符号输入。下面是一个使用匿名函数的例子: ``` g = @(x,y) sin(x)*cos(y) z = g(pi/4, pi/6) ``` 在上面的例子中,我们使用@符号定义了一个匿名函数“g”,该函数计算指定范围内sin(x)和cos(y)之间的乘积。我们用pi/4和pi/6调用该函数,并将结果存储在变量“z”中。 与inline函数相比,匿名函数是更加最新和建议的选项。“@”符号可以让用户轻松地以代码块形式定义任意复杂度的函数,并自由传递它们。 其它-数据的输入输出input函数:提示用户输入数据 A=input(提示信息,选项): disp函数:屏幕输出 disp(输出项) 由于disp函数输出的是字符串。如果要输出数字,那么必须先把数字转成字符串。 求ax2+bx+c=0的根。 程序如下: a=input('a=?") b=input('b=?'); c=input('c=?); d=b*b-4*a*c; X=[(-b+sqt(d)/(2*a),(b-sqrt(d))/(2*a)]; disp(['x1=',num2str(x(1)),',x 2=',num2str(x(2)); 其它-函数重载 nargin与nargoutnargin: 记录调用函数时输入变量个数; nargout:记录调用函数时输出变量的个数。 例:函数文件exam_arg.m: function [f1,f2]=exam_arg(a,b,c) if nargin==1 f1=a; elseif nargin==2 f1=(a+b)/2; elseif nargin==3 f1=(a+b+c)/3; end if nargout==0 error(('没有输出参数。): elseif nargout==2 f2=计算平均值', end 提高运行速度曲线图 绘制曲线的最基本函数: plot(x,y) :x和y为长度相同的向量,分别用于存储x 坐标和y坐标数据。 plot(x1,y1,选项1,x2,y2, 选项2,…,xn,yn,选项n) :多 组折线 plot3(x1,y1,z1,选项1,…,xn,yn,zn,选项n) :空间曲线fplot(‘fun’,[a,b]):绘制fun在区间[a,b]上的图形fun可以是函数或表达式用plot函数的程序如下: x=0:pi/100:2*pi; y=2*exp(-0.5*x).*sin(2*pi*x); plot(x,y,'r*') %分别以x,y对应的元素为横、纵坐标绘制曲线。图形导出方法: 1、File->Save->图形文件 2、Edit->Copy figure->粘贴到指定文件 在0≤X≤2区间内,绘制曲线y=2e-0.5xsin(2πx)或者用fplot函数:fplot(@(x)2exp(-0.5x)sin(2pix),[0,2pi],‘gd’) [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lugzsagD-1685846200209)(2023-06-04-10-26-47.png)] 绘制三维参数曲线 t=0:pi/50:2*pi; x=8*cos(t);y=4*sqrt(2)*sin(t); z=-4*sqrt(2)*sin(t); plot3(x,y,z,'p')例:在一个窗口中同时绘制正弦、余弦等曲线。 x=linspace(0,2*pi,60); y=sin(x);z=cos(x); subplot(2,2,1); %选择2×2区中的1号区 plot(x,y); title('sin(x)'); axis ([0,2*pi,-1,1]); subplot(2,1,2); %选择2×1区中的2号区 plot(x,z, '*'); title('cos(x)'); axis ([0,2*pi,-1,1]); x=linspace(-2,2,60); y=x.^3; subplot(2,2,2); %选择2×2区中的2号区 plot(x,y); title('x^3'); axis ([-2,2,-4,4]);!](https://img-blog.csdnimg.cn/c154d7b4a30b422499ffd0d7f4923034.png#pic_center) |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |