003 MATLAB基础计算
01 方程组的求解
多项式及其运算
多项式在MATLAB中以向量形式存储。
即n次多项式用一个长度为n+1的系数向量来表示,且按降幂,缺少的幂次对应的向量元素为0。 多项式的运算主要包括多项式的四则运算、求导、求值和求根运算
多项式的四则运算:
>> p1=[2 0 -6 1];
>> p2=[1 -1];
加减运算 p=polyadd(p1,p2)
p = 2 0 -5 0 ,适用于任意阶次间多项式相加
乘法运算 p=conv(p1,p2)
p = 2 -2 -6 7 -1 ,p=conv(p1,p2)
除法运算 [p,r]=deconv(p1,p2)
p = 2 2 -4 r = 0 0 0 -3
,[p,r]=deconv(p1,p2),其中k是商,r是余数。
多项式求导:
利用函数polyder来实现,语法格式:
poly(p):返回多项式p的导数。
poly(p1,p2):返回多项式p1*p2的导数。
[q,d]=poly(p1,p2):返回多项式p1/p2的导数,q是分子,d是分母。
多项式求值:
y=polyval(p,x):按数组运算规则计算多项式值。
y=polyvalm(p,X):按矩阵运算规则计算多项式值,且X只能是方阵
多项式求根:
>> p=[1 2 -5 0 4];
>> r=roots(p)
当多项式的根已知时,可以利用函数poly(r)来构建多项式的系数。
>> poly(r)
ans = 1.0000 2.0000 -5.0000 0.0000 4.0000
02 线性方程组的求解:
可直接通过矩阵相除得到
>> A=[1 1 1;2 3 -1;-1 2 4];
>> B=[1;3;2];
>> x=A\B
03 非线性方程组的求根:
x=fzero(fun,x0)
建立函数文件方式:
%建立函数文件fun1.m。
function f=fun1(x)
f=x^2+2*x-exp(x)+5;
%以M函数文件的函数句柄输入方程
>> x=fzero(@fun1,1)
x =2.9929
以匿名函数方式输入方程方式:
%以匿名函数方式输入方程
>> x=fzero(@(x)x^2+2*x-exp(x)+5,1)
x = 2.9929
%以字符串方式输入方程
>> x=fzero('x^2+2*x-exp(x)+5',1)
x = 2.9929
以字符串方式输入方程:
>> x=fzero('x^2+2*x-exp(x)+5',1)
x = 2.9929
非线性方程组求解:
x=fsolve(fun,x0)
求解时还可以在指令中加入options:
x=fsolve(fun,x0,options)
其中options通过调用optimset函数来设定最大优化代数、优化精度、中间结果的显示等等。
例如'Display'选项决定显示优化的中间结果的方式,其调用格式为:
options=optimset('Display','off'或'iter'或'final')
其中'off'表示不显示,'iter'表示每步都显示,'final'表示仅显示最终结果。
fun也可以以M函数文件的函数句柄、匿名函数或字符串方式输入
04 插值和拟合
由离散点数据来确定函数的方法
测量值是准确的,没有误差,一般用插值
测量值与真实值有误差,一般用曲线拟合
1 函数插值
作用:函数插值是根据给定的有限个样本点,产生另外的估计点以达到数据更为平滑的效果
一维插值函数的调用格式为:
yi=interp1(x,y,xi, 'method')
method是内插方法,可选择:
最近项插值'nearest'、线性插值'linear'、样条插值'spline'或立方插值'cubic',默认为线性插值。
其中的插值方式也可直接这么用:
s = spline(x,y,xq)
返回与查询点xq对应的插值向量s。s的值由x和y的三次样条插值确定。
>> x=0:10;y=sin(x)+cos(x);
>> xi=0:0.1:10;
>> y1=interp1(x,y,xi);
>> y2=interp1(x,y,xi,'nearest');
>> y3=interp1(x,y,xi,'spline');
>> y4=interp1(x,y,xi,'cubic');
plot(xi,y1,xi,y2,'-s',xi,y3,'-.',xi,y4,'-*')
‘nearest’为直角转折; ‘linear’是分段线性变化; 'spline'和 'cubic'形成的曲线很平滑
二维数据插值:
Z1=interp2(X,Y,Z,X1,Y1,'method')
其中X,Y是两个向量,分别描述两个参数的采样点,Z是与参数采样点对应的函数值,X1,Y1是两个向量或标量,描述欲插值的点。Z1是根据相应的插值方法得到的插值结果。 method的取值与一维插值函数相同
其中X1,Y1的取值范围不能超出X,Y的给定范围,否则,会给出“NaN”错误
>>x=0:2.5:10;
>>h=[0:30:60]';
>>T=[95,14,0,0,0;88,48,32,12,6;67,64,54,48,41];
>>xi=[0:0.5:10];
>>hi=[0:10:60]';
>>temps=interp2(x,h,T,xi,hi,'cubic');
>>mesh(xi,hi,temps)
其中mesh是三维网格图绘制
2 曲线拟合
作用:曲线拟合就是寻找一个函数(或曲线),使该函数(或曲线)在某种准则下与样本点数据最为接近,但并不要求拟合曲线通过全部已知的样本点
p=polyfit(x,y,n)
函数ployfit使用的准则是最小二乘准则:测得m个离散点,构造一个n(n<m)次多项式:p(x)=a1x^n+a2x^n-1+...+anx+an+1,使得在各个已知数据点处,(p(xi)-yi)^2之和达到最小。
其中,x和y是已知样本点数据,n是拟合多项式的阶次,p为返回的拟合多项式的系数。
>> x=0:10;y=sin(x)+cos(x);
>> p1=polyfit(x,y,1),p2=polyfit(x,y,2),p3=polyfit(x,y,3),p4=polyfit(x,y,4);
>> x1=-1:0.1:11;
>> y1=polyval(p1,x1);
>> y2=polyval(p2,x1);
>> y3=polyval(p3,x1);
>> y4=polyval(p4,x1);
>>plot(x1,y1,'-*',x1,y2,'--',x1,y3,'-.',x1,y4)
05 常用于数据统计与分析的函数
1. 求矩阵最大元素和最小元素
(1)求最大值和最小值
y=max(X)
y=min(X)
- 当X为向量时:
返回向量X的最大(小)值存入y,如果X中包含复数元素,则按模取最大(小)值
- 当X为矩阵时:
返回一个行向量,返回每列的最大元素
[y,I]=max(X)
[y,I]=min(X)
- 当X为向量时:
返回向量X的最大值(小)存入y,最大(小)值的序号存入I,如果X中包含复数元素,则按模取最大(小)值
- 当X为矩阵时:
返回每列的最大元素和对应行号
max(A,[],dim)
dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量
2. 求矩阵的平均值和中值
(1)求平均值和中值
mean(X)
- 当X为向量时:
返回向量X的算术平均值。
- 当X为矩阵时:
返回一个行向量,各列的平均值
mean(A,dim):当dim为1时,该函数等同于mean(A)。当dim为2时,各行的平均值
median(X)
- 当X为向量时:
返回向量X的中值。(数据序列为偶数个,则取中间两项的平均值)
- 当X为矩阵时:
返回一个行向量,各列的中值
median(A,dim):当dim为1时,该函数等同于median(A);当dim为2时,各行的中值
3. 矩阵元素求和与求积
sum(X)
- 当X为向量时:
返回向量X各元素的和
- 当X为矩阵时:
返回一个行向量,各列之和
sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,返回一个列向量,各行之和
prod(X)
- 当X为向量时:
返回向量X各元素的乘积
- 当X为矩阵时:
返回一个行向量,各列之积
prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时,返回一个列向量,各行之积
4.求标准方差
对于向量X:
std(X)
对于矩阵A:
Y=std(A,flag,dim)
其中当dim=1时,求各列元素的标准方差(返回行向量);
当dim=2时,则求各行元素的标准方差(返回列向量)。当flag=0时,按σ1所列公式计算标准差,
当flag=1时,按σ2所列公式计算标准差。
省略时flag=0,dim=1
5.相关系数
X,Y是向量:
corrcoef(X,Y)
X是矩阵:
corrcoef(X)
返回从矩阵X形成的一个相关系数矩阵。它把矩阵X的每列作为一个变量,然后求它们的相关系数(各列两两之间,依次求相关系数)。
6. 排序
对向量X:
sort(X)
函数返回一个对X中的元素按升序排列的新向量
[Y,I]=sort(A,dim,mode)
其中若dim=1,则按列排;
若dim=2,则按行排。mode默认‘ascend’,若取‘descend’,则按降序。
Y是排序后的矩阵,而I记录Y中的元素在A中原来的位置。
相关文章:

003 MATLAB基础计算
01 方程组的求解 多项式及其运算 多项式在MATLAB中以向量形式存储。 即n次多项式用一个长度为n1的系数向量来表示,且按降幂,缺少的幂次对应的向量元素为0。 多项式的运算主要包括多项式的四则运算、求导、求值和求根运算 多项式的四则运算:…...
安卓逆向之Android-Intent介绍
Intent是各个组件之间交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,而且还能在各组件之间传递数据。Intent一般可用于启动Activity、启动Service、发送广播等场景。Intent有多个构造函数的重载。 显式intent 显式 Intent 明确指定要启动的…...
数据库日期时间用什么类型?
数据库中的日期时间类型主要包括DATE、TIME、DATETIME和TIMESTAMP等,它们在存储、格式和范围等方面有所不同。以下是这些类型的详细说明和异同比较: 1. DATE类型 用途:用于存储日期值,不包含时间部分。格式:YYYY-MM-…...
Python中字符串和正则表达式
Python中字符串和正则表达式 在Python编程中,字符串是最常用的数据类型之一。字符串用于表示文本数据,而正则表达式则是一种强大的工具,用于处理和匹配字符串中的模式。本文将介绍Python中的字符串操作、字符串格式化以及如何使用正则表达式…...

Leecode刷题C语言之N皇后
执行结果:通过 执行用时和内存消耗如下: 代码如下: int solutionsSize;char** generateBoard(int* queens, int n) {char** board (char**)malloc(sizeof(char*) * n);for (int i 0; i < n; i) {board[i] (char*)malloc(sizeof(char) * (n 1))…...

即时通讯| IM+RTC在AI技术加持下的社交体验
即时通讯作为互联网的重要应用之一,见证了中国互联网30年发展的辉煌历程。 它从最初的文字交流,发展到如今的语音、视频通话,甚至是虚拟现实社交,已经渗透到生活的社交、娱乐、商务等方方面面,成为现代社会不可或缺的一…...
repo仓库转移到自己本地的git服务器
前提条件:搭建好gitolite 以转移正点原子rk3568_linux工程为例子,将其转移到自己的git服务器。 获取完整repo仓库 将正点原子epo仓库sync出来 evanevan-X99:~/SRC/atk$ .repo/repo/repo sync -l -j10 evanevan-X99:~/SRC/atk$ .repo/repo/repo list -n…...

微服务即时通讯系统的实现(服务端)----(2)
目录 1. 语音识别子服务的实现1.1 功能设计1.2 模块划分1.3 模块功能示意图1.4 接口的实现 2. 文件存储子服务的实现2.1 功能设计2.2 模块划分2.3 模块功能示意图2.4 接口的实现 3. 用户管理子服务的实现3.1 功能设计3.2 模块划分3.3 功能模块示意图3.4 数据管理3.4.1 关系数据…...

人工智能-深度学习-神经网络-激活函数
激活函数通过引入非线性来增强神经网络的表达能力,对于解决线性模型的局限性至关重要。由于反向传播算法(BP)用于更新网络参数,因此激活函数必须是可微的,也就是说能够求导的。 满足激活函数的条件 1.可微分,也就是可求导 激活函…...

vue3+ts+uniapp微信小程序顶部导航栏
这是colorui改的,不用就不用看啦 color-ui(https://docs.xzeu.com/#/) 新建component文件夹创建topNavigation.vue <template><view><view class"cu-custom" :style"height: CustomBar px"><view class"cu-bar…...

IAR中编译下载未下载问题
第一张图片是正常下载,第二张未正常下载。经过查看download选项发现 启用了 suppress download (禁用下载)...

springboot(20)(删除文章分类。获取、更新、删除文章详细)(Validation分组校验)
目录 一、删除文章分类功能。 (1)接口文档。 1、请求路径、请求参数。 2、请求参数。 3、响应数据。 (2)实现思路与代码书写。 1、controller层。 2、service接口业务层。 3、serviceImpl实现类。 4、mapper层。 5、后端接口测试。…...
英语系统语法书面记载:高级语法 8 的状语从句
在英语高级语法中,状语从句是一种用来修饰动词、形容词、副词或整个句子的从句,它提供有关时间、地点、原因、条件、方式、让步等信息。状语从句通常由特定的连词引导。以下是常见的几种状语从句类型及其用法: 1. 时间状语从句 (Adverbial Cl…...

C语言:深入理解指针(1)
一.内存和地址 在讲内存和地址之前,我们想有个生活中的案例: 假设有一栋宿舍楼,把你放在楼里,楼上有100个房间,但是房间没有编号,你的一个朋友来找你玩,如果想找到你,就得挨个房子去…...
priority_queue--优先队列
一、认识优先队列 priority_queue(优先队列)是 C 标准模板库(STL)中的一个容器适配器。它的底层实现通常是用堆(一般是二叉堆)来实现的。优先队列中的元素按照一定的优先级顺序进行排列,在队首的…...

Paper -- 建筑物高度估计 -- 基于深度学习、图像处理和自动地理空间分析的街景图像建筑高度估算
论文题目: Building height estimation from street-view imagery using deep learning, image processing and automated geospatial analysis 中文题目: 基于深度学习、图像处理和自动地理空间分析的街景图像建筑高度估算 作者: Ala’a Al-Habashna, Ryan Murdoch 作者单位: …...

开发一套ERP 第八弹 RUst 插入数据
更全面的报错,方便检查错误在哪里,现代高级语言越来越智能 还是得看下原文档怎么操作的 src 目录为crate 的根目录 想在crate 中模块相互引入需要在 main 中声明,各个模块,然后才能在各个模块中相互引入和使用 原始工程引入,避免直接使用 lib.rs 回合cargo 中的一些 工程管理出…...
回退用 git revert 还是 git reset?
git revert 会生成一个新的 commit 来记录此次操作;git reset 是把 HEAD 指针向前挪动一次,会减少一个 commit。 回退用 git revert 回退还是用 git reset,核心就一点: 是否需要记录这次回退。 如果需要记录这次回退,…...
【docker】多阶段构建与基础构建,及企业案例展示
基础构建与多阶段构建对比 基础构建(单阶段构建) 在基础构建中,所有构建过程和最终的应用程序都在同一个镜像中进行,构建工具和最终应用程序都会在最终镜像中。 这样构建镜像时会包含所有的构建工具和依赖,因此最终镜…...
基于链表的基础笔试/面试题
1. 反转链表 问题描述:反转一个单向链表。 示例: 输入:1 → 2 → 3 → 4 → 5 输出:5 → 4 → 3 → 2 → 1 class ListNode {int val;ListNode next;ListNode(int x) {val x;} }public class LinkedList {public ListNode …...

华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...