Matlab 矩阵运算

1、Syms 和sym的区别:

  1. syms是定义多个符号是符号变量的意思

    sym只能定义一个符号变量,但可以具体到这个符号变量的内容

    例:syms f z; %定义下x和y

    f=sym(‘a+b+c‘); %就只能定义一个f=a+b+c

  2. syms可以直接声明符号函数d(r),并且可以对函数的形式进行赋值改变,但是sym却不可以

    例:>> syms d(r)

    >> d=r^2

    d =r^2

    >> sym d(t)

    ans =d(t)

    >> d=t^2

    Undefined function or variable ‘t‘

2、subs 置换指令

  1. R=subs(S) %将表达式S中的所有变量用调用的函数或MATLAB workspace中获得的值进行置换,将置换后的表达式赋给R;
  2. R=subs(S,new) %用new置换表达式S中的自变量后在赋给R;
  3. R=subs(S,old,new) %用new置换表达式中的old,然后将置换完的表达式赋给R

例:>> syms a b x;

>> f=a*sin(x)+b

f =b + a*sin(x)

>> f1=subs(f,sin(x),‘log(y)‘)

f1 =b + a*log(y)

>> f2=subs(f,a,2.89)

f2 =b + (289*sin(x))/100%当单个变量被双精度数字置换后,其结果仍然是符号对象属性,f中的a被置换为289/100了。

>> f3=subs(f,{a,b,x},{2,5,sym(‘pi/3‘)})

f3 =3^(1/2) + 5%如果置换数字中含有符号数字,那么计算记过类型也为符号sym类型。表达式中的所有变量都被数字置换,而且sin(pi/3)被计算出来了(其类型即为sym)

>> f4=subs(f,{a,b,x},{2,5,pi/3})

f4 =6.7321%如果置换全为双精度数值型数字,计算结果也为双精度

?

3、向量的积、叉积

dot:向量的数量积。格式:C=dot(A,B)

cross:向量的叉积。格式:C=cross(A,B)

4、矩阵中inv、 pinv、rank、eig

inv:逆矩阵。矩阵A为方阵。

pinv:伪逆矩阵。当矩阵A为长方形时,计算A的伪逆矩阵,用pinv(A)。

rank:矩阵的秩

eig:矩阵的特征值。

两种格式:(1)d=eig(A) 特征值以列向量形式给出

(2)[V,D]=eig(A) V:特征向量矩阵;D特征值(对角矩阵)

4、矩阵分解

  1. Cholesky分解

    A为的正定矩阵。使得

    格式:(1) R=chol(A) 输出R的上三角矩阵。

    (2)[R,p]=chol(A) 输出R矩阵同上,如果A为正定p=0,如果A不正定,则p为正整数,且上三角矩阵R的阶数n=p-1。

  2. LU分解

将A分解为一个下三角矩阵L与一个上三角矩阵U的乘积。格式:[L, U]=lu(A)

  1. QR分解

    将矩阵A分解为一个正交矩阵Q与一个上三角矩阵R的乘积。

    格式:(1)[Q,R]=qr(A) 输出Q:正交矩阵;R:上三角矩阵。

    (2)[Q,R,E]=qr(A) 输出的参量E为一个置换矩阵。

  2. 奇异值分解

    格式:(1)S=sdv(A) 输出S是A的奇异值对角矩阵

    (2)[U,S,V]=svd(A) 输出U与V是两个正交矩阵,

    U、S与V称为矩阵A的奇异值分解三对组。

    ?

5、基本函数组


函数名


功能


函数名


功能


sec


正切


log


自然对数


csc


余切


log10


常用对数


asin


反正弦


pow2


以2为底的指数


atan


反正切


conj


复数的共轭


atan2


四象限反正切


isreal


是否为复数


sinh


双曲正弦


asinh


反双曲正弦


sign


符号函数


sqrt


平方根


fix


向0取整


floor


向负无穷方向取整


ceil


向正无穷方向取整


round


四舍五入


mod


除法求余(与除数同号)


rem


除法求余(与被除数同号)

?

6、特殊函数组


函数名


功能


函数名


功能


airy


Airy函数


erf


误差函数


beseelj


第一类beseel函数


erfinv


误差函数的逆函数


beseely


第二类beseel函数


exprint


指数形式积分函数


beseelh


第三类beseel函数


gamma


Gamma函数


beseeli


改进的第一类beseel函数


gammanic


不完全Gamma函数


beseelk


改进的第一类beseel函数


gammaln


对数Gamma函数


beta


Beta函数


isprime


是否为质数


betainc


不完全beta函数


gcd


最大公约数


betaln


对数beta函数


lcm


最小公倍数


ellipj


Jacobi椭圆形函数


rat


有理数近似


ellipke


完全椭圆形积分


rats


有理数形式输出

?

7、矩阵函数

zeros(m,n):生成元素全为0的阶矩阵。

ones (m,n):生成元素全为1的阶矩阵。

rand (m,n):生成均匀分布的阶的随机矩阵。

randn(m,n):生成正态分布的阶的随机矩阵。

magic(N):生成一种N阶魔方阵。魔方阵:每一行、每一列、对角线上的元素之和相等。

diag (X):生成矩阵X的对角矩阵。

triu (Y):生成矩阵Y的上三角矩阵。

tril (Y):生成矩阵Y的上三角矩阵。

size (Z):返回指定矩阵Z的行数和列数。

eye (m,n):生成阶的单位矩阵。

一般eye和size一起用,生成指定矩阵Z同维的单位矩阵。

8、特殊矩阵生成函数


函数


功能


函数


功能


compan


伴随阵


magic


魔方阵


gallery


Higham检验矩阵


pascal


Pascal阵


hadamard


Hadamard阵


rosser


经典对称特征值检验矩阵


hankel


Hankel阵


toeplitz


Toeplitz阵


hilb


Hilbert阵


vander


Vander阵


invhilb


逆hilbert 阵


wilknsion


Wilksion特征值检验矩阵

?

9、矩阵变换函数


函数


功能


fliplr


矩阵左右翻转


flipud


矩阵上下翻转


flipdim


矩阵沿特定维翻转

例:flipdim(A,1)=
flipud(A); flipdim(A,2)


rot90


矩阵逆时针旋转90°

?

10、矩阵的运算函数


函数


功能


函数


功能


cond


向量矩阵的条件数


norm


向量矩阵的范数


condeig


对应于特征值的条件数


null


矩阵的零空间


det


方阵的行列式值


orth


矩阵的列空间


expm


矩阵的指数函数


rank


矩阵的秩


funm


计算矩阵的函数值


subspace


子空间的夹角


logm


矩阵的对数函数


squtm


矩阵的平方根

时间: 2024-10-09 03:11:56

Matlab 矩阵运算的相关文章

C++矩阵库Eigen的仿Matlab矩阵运算

与其他矩阵库相比,Eigen(Visit)相比,Eigen只需要拷贝所有include文件到指定位置,无需编译即可使用;此外,用法上模仿Matlab矩阵操作; 上述特点,使其具有很好的实用性. 附上测试代码,以便学习和使用. //http://eigen.tuxfamily.org/dox/group__QuickRefPage.html #include <iostream> #include <Eigen/Dense> using namespace std; using na

MATLAB编程与应用系列-第3章 矩阵运算(1)

本系列教程来源于出版设计<基于MATLAB编程基础与典型应用书籍>,如涉及版权问题,请联系:[email protected]. 出版社:人民邮电出版社, 页数:525. 本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:[email protected] 本章将介绍与MATLAB矩阵运算有关相关的内容.矩阵运算是MATLAB的基础,是MATLAB强大计算功能的体现.这一章的内容可以帮助读者解决一些学习和工作中常遇到的实际问题,让读者了解

MATLAB入门学习(二)

关于矩阵 ~o( =∩ω∩= )m matlab矩阵运算很强大 ,几乎所有涉及矩阵运算的命令都有. 事实上,matlab里面所有变量都是以矩阵的形式保存下来的. 一个数字是1x1矩阵 我们来看看矩阵的输入方式吧! 这是直接输入的方式 行之间要用:或者回车隔开 每行数据的个数要相等 ①冒号生成法变量=初值:增量:终值 相当于for(i=1;1<=12;i+=2) ②还有一种 ,不知道增量,只知道初值,终值和项数 的方法 这是生成一个初值为1,终值为5,10项的一维向量. 下面看看矩阵元素的访问 先

[转] Matlab与C++混合编程,添加OpenCV库

原文地址 峰回璐转 最近在做运动医学软件优化工作,此款软件框架及算法语言全由matlab实现,虽然matlab矩阵运算.数值计算能力强大,但速度让人难以忍 受.软件立刻移植到C++上又不太实际,故采用联合编程的方式,速度难以容忍的算法交给C++实现,C++在实现代码的过程中某些数值计算及图像处理算法 调opencv库函数. 在网上有很多matlab编写mex函数调用opencv库的方法,但都不能直接拿来.经过一步步试验,修改,最终完成,现将过程及内容记录下来留给后来人参考. 第一步: (参考参考

Matlab与C++混合编程,添加OpenCV库

最近在做运动医学软件优化工作,此款软件框架及算法语言全由matlab实现,虽然matlab矩阵运算.数值计算能力强大,但速度让人难以忍受.软件立刻移植到C++上又不太实际,故采用联合编程的方式,速度难以容忍的算法交给C++实现,C++在实现代码的过程中某些数值计算及图像处理算法调opencv库函数. 在网上有很多matlab编写mex函数调用opencv库的方法,但都不能直接拿来.经过一步步试验,修改,最终完成,现将过程及内容记录下来留给后来人参考. 第一步: (参考参考资料1,但其写的不够详细

deep learning 自编码算法详细理解与代码实现(超详细)

在有监督学习中,训练样本是有类别标签的.现在假设我们只有一个没有带类别标签的训练样本集合 ,其中 .自编码神经网络是一种无监督学习算法,它使用了反向传播算法,并让目标值等于输入值,比如 .下图是一个自编码神经网络的示例.通过训练,我们使输出 接近于输入 .当我们为自编码神经网络加入某些限制,比如限定隐藏神经元的数量,我们就可以从输入数据中发现一些有趣的结构.举例来说,假设某个自编码神经网络的输入 是一张 张8*8 图像(共64个像素)的像素灰度值,于是 n=64,其隐藏层 中有25个隐藏神经元.

MATLAB编程与应用系列-第3章 矩阵运算(2)

本系列教程来源于出版设计<基于MATLAB编程基础与典型应用书籍>,如涉及版权问题,请联系:[email protected]. 出版社:人民邮电出版社, 页数:525. 本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:[email protected] ###3.1.5 矩阵函数MATLAB提供了丰富的函数来实现对矩阵的各种运算,下面将逐步介绍.因篇幅关系,将不作数学方面的解释.表3.1所示为常用的矩阵运算函数以及函数相对应的功能描述

MATLAB编程与应用系列-第3章 矩阵运算(3)

本系列教程来源于出版设计<基于MATLAB编程基础与典型应用书籍>,如涉及版权问题,请联系:[email protected]. 出版社:人民邮电出版社, 页数:525. 本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:[email protected] ###3.1.8 矩阵和数组运算比较在进行矩阵和数组运算的时候,要认识到矩阵和数组类似运算的区别,两种运算指令形式和实质内涵的异同见表3.3.其中S为标量,A.B为矩阵.表3.3 矩阵

c++中进行矩阵运算如何才能比matlab快?

欧巴不知道你值的是那些操作,如果是乘法,算法所限,你不可能有本质的提高.又比如求逆,相信广大屌丝程序员立马会意识到:高斯-乔丹,小于五阶用伴随除矩阵以行列式,然后用SSE优化浮点速度.想再快就得去翻论文了,可是matlab那群鸟人,就是写论文的人,他们的数学知识是我等码农无法相比的,而matlab十几年前就在做SSE优化.你唯一能做的就是算法上的突破,一旦逆袭高斯-乔丹算法,你必将为国争光,名垂青史.不过作为一个屌丝,你得明白,必须要抓住一切机会逆袭,因为题目只要求快,其他的限制一概没有,而ma