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 …...
SARIMA 模型Matlab代码
% 导入数据 data readtable(data.xlsx); % 假设数据在第一列 y data{:, 1}; % 获取第一列数据% 划分训练集和测试集,80% 训练,20% 测试 trainSize floor(0.8 * length(y)); trainData y(1:trainSize); testData y(trainSize1:end);% 创建时间序列…...
第八课 Unity编辑器创建的资源优化_特效篇(Particle System)详解
无论是CPU还是GPU,粒子系统对其的影响面都是不容小觑的。随着项目的重度化和3A化,玩家的口味变挑剔了、游戏玩法复杂度变高了、画面的特效表现变复杂了......所以我们还是更加谨慎地对待粒子系统。 特效(Particle System) 游戏效…...
Oracle对比表与表之间的结构
自己首先想到的就是,navicat有提供结构同步 但是有些时候情况不一样,比如我遇到的是连接不同,而且是互相同步,以最多的列的那个表为样 没有说一个固定的源 那么还可以通过导出表结构去另一个库中执行看是否报错,以此来判断结构的不同 但是我感觉有点儿麻烦 最后想到通过sql语…...
基于JSP+MySQL的网上招聘系统的设计与实现
摘要 在这样一个经济飞速发展的时代,人们的生存与生活问题已成为当代社会需要关注的一个焦点。对于一个刚刚 踏入社会的年轻人来说,他对就业市场和形势了解的不够详细,同时对自己的职业规划也很模糊,这就导致大量的 时间被花费在…...
【Linux】进程地址空间(虚拟地址vs物理地址vs页表)
Linux 进程概念补充【Linux】 进程是什么(不熟悉的兄弟可以看看)。 1. C/C内存分布图 对于有c/c基础的同学相信对上面的图片并不陌生,实际上其描述的并不是正真的物理内存,而是虚拟内存,我们把它叫做进程地址空间 。 2…...
pytorch 融合 fuse 学习笔记
目录 fuse_lora 作用是什么 fuse_modules源码解读 fuse_lora 作用是什么 在深度学习模型微调场景下(与 LoRA 相关) 参数融合功能 在使用 LoRA(Low - Rank Adaptation)对预训练模型进行微调后,fuse_lora函数的主要作…...
在 Ubuntu 20.04 上使用 Lux 下载 Bilibili 视频的详细教程
在 Ubuntu 20.04 上使用 Lux 下载 Bilibili 视频的详细教程 在 Ubuntu 20.04 上使用 Lux 下载 Bilibili(哔哩哔哩)视频的完整和详细步骤如下,包括使用预编译二进制文件的安装方法: 1. 安装依赖 确保你的系统已安装 FFmpeg&…...
【eclipse】快捷键
【eclipse】快捷键 编辑导航重构调试复制其他快速生成 Eclipse 提供了丰富的快捷键来帮助开发者提高工作效率。 以下是一些常用的 Eclipse 快捷键,它们覆盖了编辑、导航、重构、调试等多个方面。 这些快捷键能够显著提升开发效率,尤其是在处理大型项目时…...
集成开发环境(IDE)的使用技巧插件配置
在开发过程中,集成开发环境(IDE)的使用技巧和插件配置对提高工作效率、优化代码质量和加速调试至关重要。 一、IDE使用技巧 1. 代码导航 跳转到定义(Go to Definition):快速跳转到函数、类或变量的定义位…...
【如何提升代码工程质量】code review篇
应该对于基本上所有软件相关的公司来说,都有committer机制,即代码写好之后会提交合并请求,待相关人员code review通过后再进行合入,所以code review就是代码合入代码仓库的最后一道关卡,对于代码质量的影响也是不容忽视…...
自己做网站 套模板/网络推广项目外包公司
在配置百度地图 SDK 和使用时,发现官网上的教程并不是那么好用,而且容易出现定位回调里 BDLocation.getLocType() 162 这个问题,官网只是说 SO 配置出现异常,并没有明确问题所在;如果你也遇到了,请点这个链…...
移动版网站开发/怎么自己制作网页
由于Linux默认的history记录仅保存了命令的内容,没有具体的时间,我只能通过查出用户的登录与退出的时间,来给他们一个时间范围。因此,我们非常有必要对history历史命令的记录功能进行优化,我推荐的参数如下:…...
网站开发环境 对比/品牌宣传活动策划方案
Kmeans是最经典的聚类算法之一,它的优美简单、快速高效被广泛使用。 Kmeans算法描述 输入:簇的数目k;包含n个对象的数据集D。 输出:k个簇的集合。 方法: 从D中任意选择k个对象作为初始簇中心;repeat;根据簇…...
wordpress产品参数多图/利尔化学股票
JDK安装与环境变量的配置 文章目录JDK安装与环境变量的配置一、JDK下载1.官网下载2.百度网盘二、JDK安装三、环境变量的配置一、JDK下载 1.官网下载 https://www.oracle.com/java/technologies/javase-jdk15-downloads.html 2.百度网盘 链接:https://pan.baidu.…...
移动app网站模板/国家提供的免费网课平台
乒乓球赛制探索:从21分到11分再到35分,哪种方式观众更喜欢?我觉得21分制更受欢迎。乒乓球规则何时改为5球一局了?怎么规定的?对此你怎么看?冠军应该是T2钻石商业联盟(以下简称T2联盟)的比赛。这里有个简单的…...
css不规则网站导航怎么做/北京网站维护公司
运行结果附图 在此把本周一课上的操作简要记录: 首先做一些基本的配置,启动服务的准备工作: 首先启动三个docker docker start master docker attach master docker start slave1 docker attach slave1 docker start slave2 docker attach sl…...