视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501
当前位置: 首页 - 手机 - 正文

如何用matlab进行矩阵运算

来源:懂视网 责编:小OO 时间:2020-04-03 21:09:29
导读如何用matlab进行矩阵运算,a=[123;456;778];b=[122;234];A=prod(a,2);B=prod(b,2);[ma,n]=size(a);[mb,n]=size(b);R=zeros(mb,ma);forr=1:mbR(r,:)=B(r)*A;endRR=24480156814428809408矩阵分析可以解决很多问题,但很多时候矩阵的运算比较繁琐,特别是高阶矩

a = [1 2 3; 4 5 6; 7 7 8];b = [1 2 2; 2 3 4];A = prod(a,2)';B = prod(b,2)';[ma,n] = size(a);[mb,n] = size(b);R = zeros(mb,ma);for r = 1:mb R(r,:) = B(r)*A;endR R = 24 480 1568 144 2880 9408

矩阵分析可以解决很多问题,但很多时候矩阵的运算比较繁琐,特别是高阶矩阵运算。这时候如果用matlab来计算就方便快捷得多。下面就为大家介绍怎么用matlab进行矩阵运算的步骤

首先可以求点乘,维数肯定要相同; “.*”和“*”的区别: 在进行数之间的运算时“.*”和“*”是没有区别的,都是表示普通的乘法运算。例:m = 2,n = 3,m.*n = 6, m*n = 6。 在进行矩阵之间的运算时“.*”和“*”的意义就有所不同了。假设a,b表示两个矩

约定:

     a=[1,3,5;2,4,6;7,9,8]    b=[9,6,4;3,4,5;2,3,4]

用xor函数,比如xor(A,B) 参看http://www.mathworks.com/help/matlab/ref/xor.html?refresh=true

材料/工具

matlab

1,收先打开Matlab软件,在软件界右侧点击鼠标右键,选择“new file”,点击“script”新建一个文件: 2、在脚本里随意输入一个简单的矩阵,matlab里矩阵转置实现起来比较容易,只需要通过英文的单引号就能实现转置操作: 3、按回车键之后,就可以看

方法

加和减:

加减法的命令很简单,直接用加或者减号就可以了。如:c=a+b d=a-b

你不可以这么写。首先必须将A转化为syms,所以你应该这么写 >>A=sym(A); >>syms a >>A(1,1)=a; 这样再试试呢?

乘法:

一般乘法:c=a*b,要求a的列数等于b的行数。

加和减: 加减法的命令很简单,直接用加或者减号就可以了。如: c=a+b d=a-b 乘法: 一般乘法:c=a*b,要求a的列数等于b的行数。 如果a,b是一般的向量,如a=[1,2,3] b=[3,4,5] 点积: dot(a,b), 叉积: cross(a,b) 卷积: conv(a,b) 除法:一般

如果a,b是一般的向量,如a=[1,2,3] b=[3,4,5]

矩阵没有指数和对数运算 数组运算:.^(指数)是对应元素的运算,与矩阵运算完全不同。 矩阵运算:+ - * / -1(求逆) 等运算

点积:dot(a,b),

此题考查特征值的性质 用常用性质解此题: 1.A的行列式等于A的全部特征值之积 所以 |A| = -1*1*2 = -2 2.若a是可逆矩阵A的特征值,则 |A|/a 是A*的特征值 所以A*的特征值为 2,-2,-1 所以|A*| = 2*(-2)*(-1) = 4. 注:当然也可用伴随矩阵的行列式性

叉积:cross(a,b)

转自知乎: 原帖链接:http://www.zhihu.com/question/19706331 MATLAB的矩阵计算使用的是Intel自己出的Math kernel library(MKL),这个库远比其他的blas/lapack库要快。C快在循环,要想矩阵计算也和MATLAB一样快,那就得链接MKL,写起来免不了

卷积: conv(a,b)

转自知乎: 原帖链接:http://www.zhihu.com/question/19706331 MATLAB的矩阵计算使用的是Intel自己出的Math kernel library(MKL),这个库远比其他的blas/lapack库要快。C快在循环,要想矩阵计算也和MATLAB一样快,那就得链接MKL,写起来免不了

除法:一般在解线性方程组时会用到。

要计算三维矩阵每一层的norm的话,用for是比较合适的,如果必须不用for的话,你可以试试这个流程: >> a = randn( 2, 2, 3 ) a(:,:,1) = 0.3129 -0.0301 -0.8649 -0.1649 a(:,:,2) = 0.6277 1.1093 1.0933 -0.8637 a(:,:,3) = 0.0774 -1.1135 -1

x=ab 如果ax=b,则 x=ab是矩阵方程的解。

pa = prod(a, 2);pb = prod(b, 2);repmat(pa', numel(pb), 1) - repmat(pb, 1, numel(pa))

x=b/a 如果xa=b,则x=b/a是矩阵方程的解。

对于使用变量的矩阵运算,首先必须要定义变量名称,在Matlab中通过使用syms来定义非常方便,通过运算后将变量替换为具体的数值,下面为具体的一个实例: 1.定义变量 syms x y z; 2.定义矩阵 R1=[cos(x) -sin(x) 0;sin(x) cos(x) 0;0 0 1]; R2=[

转置:

转置时,矩阵的第一行变成第一列,第二行变成第二列,。。。

首先,肯定是算法上的优化,它没有直接按照定义去做乘,而是先对矩阵做了一些变换再乘,目的就是减少重复运算的次数。关于这个,你可以去看下Knuth的The art of programming的第一卷,那里面有例子说明怎样算最快; 其次,如果你想看些原代码,

x=a.'

求逆:

要求矩阵为方阵。x=inv(a)

可以这样,m文件不应该声明为函数,也就是上面没有声明function的才可以,三个文件均作为命令脚本运行,这样运算的东西都会放到工作区当中,先执行T1再执行T2 T3就可以了 如果已经是m文件函数的形式可以用global的方法将变量导出

扩展阅读,以下内容您可能还感兴趣。

如何写出比 MATLAB 更快的矩阵运算程序

转自知乎:

原帖链接:http://www.zhihu.com/question/19706331

MATLAB的矩阵计算使用的是Intel自己出的Math kernel library(MKL),这个库远比其他的blas/lapack库要快。C快在循环,要想矩阵计算也和MATLAB一样快,那就得链接MKL,写起来免不了各种折腾。而且,即使你链接上了,编译时各种优化选项之类的还是比不上人家专业的设定,速度很难接近MATLAB。

我自己在Gentoo上试过源里的所有blas/lapack库,无一能与MKL匹敌,而且连接近都不可能。甚至我把python的NumPy库链接上MKL后,速度也只是勉强接近。由于Gentoo的MKL库永远是最新的,而每一个新版本的MKL库对矩阵计算都有略微提升,导致可能暂时NumPy与MATLAB可以匹敌。但是一旦更新版本的MATLAB出来后,它会使用上更新的MKL库,这种领先优势就又丧失殆尽。你可以在MATLAB文档搜索中输入MKL,这样会被定位到MATLAB release notes,而里面就会含有这么一句话“Upgrade to Intel Math Kernel Libraries”,这就是每一个版本MATLAB矩阵计算都越发*快的原因。

当然,刚我提到的python,其矩阵计算速度虽然微微落后于MATLAB,但是在很多其他地方是可以大大强于MATLAB的。例如绘制大规模三维点云,以及轻松调用gpu之类的。因此python在矩阵计算的微小速度劣势完全可以忽略,可以考虑用于科学计算。

Matlab 三维矩阵操作怎样用矩阵运算代替for循环

要计算三维矩阵每一层的norm的话,用for是比较合适的,如果必须不用for的话,你可以试试这个流程:

>> a = randn( 2, 2, 3 )

a(:,:,1) =

0.3129 -0.0301

-0.8649 -0.1649

a(:,:,2) =

0.6277 1.1093

1.0933 -0.8637

a(:,:,3) =

0.0774 -1.1135

-1.2141 -0.0068

>> a1 = cellfun( @( x ) norm( x ), num2cell( a, [ 1 2 ] ) );

>> a1 = a1( : )

a1 =

0.9312

1.4482

1.2260

思路就是把三维矩阵转为一个元胞序列,元胞里的每个元素就是原始矩阵的每一层,然后利用cellfun函数进行批量计算。

怎么用MATLAB实现两个矩阵之间的运算

pa = prod(a, 2);

pb = prod(b, 2);

repmat(pa', numel(pb), 1) - repmat(pb, 1, numel(pa))

matlab中怎么用将矩阵当成自变量带入函数运算?

对于使用变量的矩阵运算,首先必须要定义变量名称,在Matlab中通过使用syms来定义非常方便,通过运算后将变量替换为具体的数值,下面为具体的一个实例:

1.定义变量

syms x y z;

2.定义矩阵

R1=[cos(x) -sin(x) 0;sin(x) cos(x) 0;0 0 1];

R2=[cos(y) 0 sin(y);0 1 0;-sin(y) 0 cos(y)];

R3=[1 0 0;0 cos(z) -sin(z);0 sin(z) cos(z)];

3.求解矩阵

a=R1*R2*R3

4.变量替换

subs(a,{x,y,z},{0,pi/2,0})

则能够直接求解出矩阵a的具体值。

完整的程序如下,直接保存为.m文件可以直接运行:

syms x y z;

R1=[cos(x) -sin(x) 0;sin(x) cos(x) 0;0 0 1];

R2=[cos(y) 0 sin(y);0 1 0;-sin(y) 0 cos(y)];

R3=[1 0 0;0 cos(z) -sin(z);0 sin(z) cos(z)];

a=R1*R2*R3;

subs(a,{x,y,z},{0,pi/6,pi/3})

PS:关于subs函数的使用 subs(f,{old},{new});

其中f是关于old的变量函数,new为具体的数值

matlab 矩阵快速运算是怎么实现的

首先,肯定是算法上的优化,它没有直接按照定义去做乘,而是先对矩阵做了一些变换再乘,目的就是减少重复运算的次数。关于这个,你可以去看下Knuth的The art of programming的第一卷,那里面有例子说明怎样算最快;

其次,如果你想看些原代码,貌似matlab在很久前就开始用LAPACK这个数学包了,LAPACK是开源的,是个数*算的包。你可以google下。

最后,stackexchange上有差不多的问题,比较了下各语言的速度,我给你粘贴下。

1024x1024 2048x2048 4096x4096

--------------- -------------- ---------------

CUDA C (ms) 43.11 391.05 3407.99

C++ (ms) 6137.10 64369.29 551390.93

C# (ms) 10509.00 300684.00 2527250.00

Java (ms) 9149.90 92562.28 838357.94

MATLAB (ms) 75.01 423.10 3133.90

当然上面的C++用的算法我猜是按定义直接算的。

标签: 大众
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

iphone6s怎么安装xy助手提示未受信任的企业级开发者 如何在word中使文档分页 优酷缓存的视频如何导出 如何将qq音乐里的歌曲快速导入到ipod shuffle 360浏览器出现乱码的解决方法是什么 3dmax弯曲怎么用?弯曲命令详解是什么 ps中涂抹工具和模糊工具怎么用 c盘哪个文件夹可以删 怎么用手机号查询ems快递 苹果手机电量百分比显示如何设置! 电脑打不出汉字是什么原因? 家庭无线局域网怎么组建 怎么批量提取文件名到excel表 新版微博应该怎么看好友在线 adobe audition cs6怎么使用录音 ipad应该怎样升级系统 163邮箱怎么登陆 coreldraw:[1]coreldraw应该怎么修改背景颜色 移动硬盘上的文件夹加密方法是什么 如何添加或删除pdf中的文字和图片内容 怎么将excle表格中的图片批量居中对齐 怎么解决winxp访问win10共享打印机提示凭据不足 个人简历模版怎么制作 如何把多个pdf文件合并 小技巧教你怎么解决此windows副本不是正版的问题 iphone彻底清除缓存的方法是什么 嗨氏电脑按键设置教程是什么 iphone手机怎么清理垃圾 怎么查看电脑显卡信息 怎么给视频文件添加片头片尾 怎么在ps中载入图案 如何用上古卷轴5的mod管理器mo 怎样用美图秀秀手动抠图 苹果官网怎么查序列号,苹果6序列号官网查询 gx developer安装教程是什么 如何查看cad中某点的坐标 添加打印机提示操作无法完成应该怎么办 object error解决方法是什么 cutterman官网下载 word文档字体如何变大
Top