matlab 矩阵计算为什么不可思议的快?

Matlab 用了什么方法计算矩阵?为什么比自己写的程序计算的速度快的多?
测试矩阵为一般大矩阵(如2000*2000),自己程序使用矩阵相乘的公式编写。
我想学习算法的。

不用那么麻烦吧,测试一下就用tic和toc命令看看运行时间就好了,一般自己实现的程序如果有工具箱函数的话,可能比如工具箱函数运行的快,一个比较常用的就是for循环和向量化的对比,如果可以向量化的for,向量化前后运行时间有质的提高。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-04-27
因为专业,所以最好!
第2个回答  2010-04-28
其实算法都一样,只不过你的程序在内存利用方面不是最佳。
第3个回答  2010-04-24
要用Strassen算法,自己搜索一下。

matlab 矩阵计算为什么不可思议的快?
不用那么麻烦吧,测试一下就用tic和toc命令看看运行时间就好了,一般自己实现的程序如果有工具箱函数的话,可能比如工具箱函数运行的快,一个比较常用的就是for循环和向量化的对比,如果可以向量化的for,向量化前后运行时间有质的提高。

matlab多个矩阵相乘CPU立马就到50是怎么回事?
你这是在炫耀配置呢。。。没到100算你幸运的了。。。矩阵阶数不大,虽然含有复数,但也应该不怎么耗时,计算机计算速度还是相当快的,估计你程序有问题,仔细检查,看看有没有逻辑错误,或者异常处理不到位。

matlab求线性方程组为什么那么快
matlab求线性方程组那么快有以下原因:1、优化算法:MATLAB内部实现了多种高效的线性方程组求解算法。根据输入的矩阵类型和大小,MATLAB会自动选择最合适的算法来求解方程组,从而提高计算效率。2、稀疏矩阵支持:对于稀疏矩阵(矩阵中大部分元素为零)的线性方程组求解,MATLAB采用了专门优化的算法,利用稀疏矩...

matlab逆矩阵运算是不是有问题?
原因是你这个矩阵是个不可逆的哦。你可以rank(AA)看一下,秩是2 或者det(AA)看一下,结果是个0(由于精度问题,是个非常小的数)

matlab max函数怎么算的这么快?是不是用了并行计算之类的。
和并行计算无关 求最大值也没有什么快捷算法 就是遍历一次矩阵,找出最大的值 但是因为max是内置的函数,是已经编译好的 不要再经过解释和编译的过程,所以运行速度很快 就像就简单的两个二维矩阵相加 c=a+b;的运行效率就很高 你也可根据矩阵的大小设置一个二重循环 for jj=1:size(a,2)for ii=...

...要求矩阵可逆?为什么一个不可逆的矩阵a在matlaB中用inv(a)*y不可...
不过这种矩阵出现的概率很低),但用左除计算出的结果却很可靠,因为左除是matlab设计的一个智能算符,他可以智能地选择算法;当方程为矛盾方程(也就是独立方程个数多余未知数个数)时,此时显然没有精确解,但很多时候我们需要x在最小二乘意义下的解,此时用A\\y就能得到x的最小二乘解。

matlab中矩阵与向量那个计算速度更快一些?
矩阵更快,我在学数值计算的时候尝试过,因为它内部调用的块运算比for语句要快,真实实验的时候对1000*1000的矩阵运算,A*B 比for sum(A(i,:)*B(:,j)) 要快得多 所以一个优秀的matlab程序员,能用矩阵的尽量不要用for语句,这个是数值运算的一条潜规则,大多初学者都不了解的 ...

MATLAB求矩阵的秩,怎么得出的结果不对呢?急求
这是你自己理解错误啦.其实符号计算也是根据数值计算进行编程的.(三角消元法、高斯消元法,龙哥库塔法等).出现误差是很正常的.千万不要坚信符号计算,毕竟如果真能这样计算.那可以解决所以未知问题的方程了.显然这是不可能的.

MATLAB 中的矩阵和数组操作
数组运算与矩阵运算在MATLAB中表现得极为高效。对于数组运算,如A + B可实现对应位置元素的加法。矩阵运算则需注意运算符的使用,例如A * B表示矩阵乘法。形状操作包括矩阵的转置、转置共轭等。通过A' 或conj(A)分别实现矩阵A的转置与转置共轭。元素级函数在处理矩阵数据时尤为方便,如sqrt(A)计算矩阵...

为什么用matlab算一个逆矩阵,会出不来呢,数量级也不是太夸张啊,哪位...
在计算之前先看看其行列式的值是多少?如果太小了就会被认为是奇异的,建议你在计算之前先将指数幂提取出来,再计算逆矩阵,然后除去该指数幂

相似回答