MATLAB笔记总结(1) 东华大学MOOC

news2024/11/28 6:38:12

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

循环语句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MATLAB函数句柄

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中的函数文件可以直接通过函数名称调用,也可以作为另一个程序或脚本文件的一部分调用。

不同的语句分析以及基本概念解释

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

函数句柄(handle)

编写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/4pi/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与nargout

nargin: 记录调用函数时输入变量个数;

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

提高运行速度

在这里插入图片描述

2.2 作图

曲线图
绘制曲线的最基本函数:
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)
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/607619.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

离散分类和非离散分类问题中的模型评价

离散分类问题中的模型评价 假设分类目标只有两类&#xff1a;正样本&#xff08;positive&#xff09;和负样本&#xff08;negative&#xff09;。 分类器的分类结果会出现以下四种情况&#xff1a; TP: 若一个实例为正&#xff0c;且被预测为正&#xff0c;即为“真正类”(…

chatgpt赋能python:Python去空格输出:优化您的代码和网站速度

Python去空格输出&#xff1a;优化您的代码和网站速度 Python是一种简单易用的编程语言&#xff0c;广泛用于各种应用和网站开发。然而&#xff0c;Python的代码输出&#xff08;如HTML和CSS&#xff09;中不可避免地包含了空格、制表符和换行符。这些额外的字符可能会影响网站…

模式识别算法的常见评价指标TP/FP/FN/TN,ROC,DET,EER

文章目录 TP/FP/FN/TN&#xff08;TA/FA/FR/TR&#xff09;误报率&#xff08;FAR&#xff09;漏报率&#xff08;FRR&#xff09; ROC曲线&#xff08;Receiver Operating Characteristic Curve&#xff0c;受试者特征曲线&#xff09;DET曲线&#xff08;Detection Error Tra…

Maven高级——继承与聚合——版本锁定

在前面的文章已经实现了Maven的继承&#xff0c;初次之外&#xff0c;还可以在父工程当中统一管理依赖的版本。 场景介绍 有一些依赖不是各个模块共有的&#xff0c;则需要到那些子模块当中单独配置了&#xff0c;这时需要到各个模块单独配置了&#xff0c;比如下图有一个模块…

【小沐学Python】Python实现Web服务器(CentOS+Docker下部署Flask)

&#x1f37a;基于Python的Web服务器系列相关文章编写如下&#x1f37a;&#xff1a; &#x1f388;【Web开发】Python实现Web服务器&#xff08;Flask快速入门&#xff09;&#x1f388;&#x1f388;【Web开发】Python实现Web服务器&#xff08;Flask案例测试&#xff09;&a…

Pyside6-第五篇-单选按钮QRadioButton

今天是Pyside6的第五篇内容。一起来看单选按钮。 QRadioButton。 class QRadioButton(QAbstractButton):"""QRadioButton(self, parent: Optional[PySide6.QtWidgets.QWidget] None) -> NoneQRadioButton(self, text: str, parent: Optional[PySide6.QtWidg…

9.wxss

wxss基本满足所有css&#xff0c;并在css的基础上增加了 rpx 尺寸单位import 导入样式 目录 1 rpx 2 import 3 全局样式与局部样式 4 样式权重 1 rpx rpx(responsive pixel)&#xff0c;中文名叫响应像素&#xff0c;它是用来解决屏幕适配的尺寸单位&#xff0c;它…

Flink第九章:Flink CEP

系列文章目录 Flink第一章:环境搭建 Flink第二章:基本操作. Flink第三章:基本操作(二) Flink第四章:水位线和窗口 Flink第五章:处理函数 Flink第六章:多流操作 Flink第七章:状态编程 Flink第八章:FlinkSQL Flink第九章:Flink CEP 文章目录 系列文章目录前言一、简单案例1.Logi…

Linux高性能服务器编程|阅读笔记:第11章 - 定时器

目录 简介系列笔记11.1 socket选项SO_RCVTIMEO和SO_SNDTIMEO11.2 SIGALRM信号11.2.1 基于升序链表的定时器11.2.2 处理非活动连接11.3 I/O复用系统调用的超时参数11.4 高性能定时器11.4.1 时间轮11.4.2 时间堆结语简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方…

光储存技术及原理

描述 信息资料迅速增长是当今社会的一大特点。有人统计&#xff0c;科技文献数量大约每7年增加1倍&#xff0c;而一般的情报资料则以每2年~3年翻一番的速度增加。大量资料的存储、分析、检索和传播&#xff0c;迫切需要高密度、大容量的存储介质和管理系统。 1898年荷兰的Vald…

Jenkins+Docker 实现一键自动化部署项目!步骤齐全,少走坑路

本文章实现最简单全面的Jenkinsdockerspringboot 一键自动部署项目&#xff0c;步骤齐全&#xff0c;少走坑路。 环境&#xff1a;centos7git(gitee) 简述实现步骤&#xff1a;在docker安装jenkins&#xff0c;配置jenkins基本信息&#xff0c;利用Dockerfile和shell脚本实现…

javaScript蓝桥杯-----芝麻开门

目录 一、介绍二、准备三、目标四、代码五、完成 一、介绍 在阿里巴巴和四十大盗的故事中&#xff0c;阿里巴巴因为无意中知道了开门的咒语人生发生了翻天覆地的变化&#xff0c;四十大盗也因为咒语的泄露最终丧命。芝麻开门的咒语作为重要的信息推动着故事的发展。下面由你来…

初识网络之TCP网络套接字

目录 一、TCP常用网络接口 1. 监听服务器 2. 接收链接 3. 发起连接 二、实现一个简单的tcp程序 1. 日志函数 2. 服务端文件 2.1 .hpp文件 2.2 .cpp文件 3. 客户端文件 3.1 .hpp文件 3.2 .cpp文件 4. 程序测试 三、实现支持多个用户并发访问的tcp程序 1. 当前程序…

解决Dockerfile错误: ERROR [3/3] RUN yum install -y wget vim net-tools

RUN yum install -y wget vim net-tools该命令是在使用容器编排工具&#xff08;如Docker&#xff09;的Dockerfile文件中执行的。它尝试安装一些常用的软件包&#xff0c;如wget、vim、net-tools。根据错误消息&#xff0c;执行此命令时发生了3个错误。 可能的原因包括&#…

chatgpt赋能python:Python去除非法字符:让你的数据更干净、更有效

Python去除非法字符&#xff1a;让你的数据更干净、更有效 在处理数据时&#xff0c;非法字符是常见的问题。它们可能是一些无意义的符号、特殊字符或非常规字符等等。如果不被正确处理&#xff0c;这些非法字符可能会给你带来麻烦&#xff0c;如导致脚本失败、破坏数据完整性…

LeetCode中等题合集 python

目录 3. 无重复字符的最长子串53. 最大子数组和80. 删除有序数组中的重复项 II442. 数组中重复的数据209. 长度最小的子数组59. 螺旋矩阵 II24. 两两交换链表中的节点19. 删除链表的倒数第 N 个结点142. 环形链表 II 3. 无重复字符的最长子串 滑动窗口&#xff0c;类似的题目还…

Biological Psychiatry:利用TMS-EEG识别难治性抑郁症间歇性θ脉冲刺激的神经生理标志物

前言 难治性抑郁症(TRD)是指在经过足够疗程的药物治疗或心理治疗后&#xff0c;症状没有得到改善的重度抑郁。大约有30%的重度抑郁症(MDD)属于难治性抑郁症。重复经颅磁刺激(rTMS)可引起大脑皮层兴奋或抑制性的改变&#xff0c;是TRD的有效干预措施。间歇性θ脉冲刺激(iTBS)一…

ClickHouse 基础

ClickHouse是2016年开源的列式存储数据库&#xff08;DBMS&#xff09;&#xff0c;使用C语言编写&#xff0c;主要用于在线分析处理查询OLAP&#xff0c;能够使用SQL查询实时生成分析数据报告。 一、列式存储 以下面的Tabel为例 IDNameGender1吴彦祖男2刘亦菲女3陈冠希男 …

INT8 中的稀疏性:加速的训练工作流程和NVIDIA TensorRT 最佳实践

INT8 中的稀疏性&#xff1a;加速的训练工作流程和NVIDIA TensorRT 最佳实践 文章目录 INT8 中的稀疏性&#xff1a;加速的训练工作流程和NVIDIA TensorRT 最佳实践结构稀疏量化在 TensorRT 中部署稀疏量化模型的工作流程案例研究&#xff1a;ResNet-34要求第 1 步&#xff1a;…

JDK17新特性 即将成为主流的JDK 深入了解

文章目录 Switch 语句增强优化字符串拼接代码instanceof增强密封类&#xff08;限制继承类&#xff09;ZGC垃圾收集器 对于JDK17比较明显的特性 总结 Switch 语句增强 首先就是简化了Switch语句&#xff1a; 去掉了break及可以直接给返回值赋值。并且再匹配多个值的时候也做了…