MATLAB的矩阵有两种存储方式,完全存储方式和稀疏存储方式 1.完全存储方式  将矩阵的全部元素按列存储,矩阵中的全部零元素也存储到矩阵中。 2.稀疏存储方式  仅存储矩阵所有的非零元素的值及其位置,即行号和列号,显然这对于具有大量零元素的稀疏矩阵来说是十分有效的。 设      1 0 0 0 A=   0 5 0 0    2 0 0 7   是具有稀疏矩阵特征的矩阵,其完全存储方式是按列存储的全部12个元素 1,0,2,0,5,0,0,0,0,0,0,7 其稀疏存储方式如下:  (1,1),1,(3,1),2,(2,2),5,(3,4),7 括号内为元素的行列位置,后面为元素值。  当矩阵非常的“稀疏”时,会有效的节省存储空间。   1.1.2稀疏存储方式的产生   1.将完全存储方式转化为稀疏存储方式  A=sparse(S);将S矩阵转换为稀疏矩阵A;  sparse(m,n);产生m*n的所有元素都为0的稀疏矩阵  sparse(u,v,S);S为建立系数矩阵的非零元素,u(i),v(i)分别为S(i)的行和列下标,S,u,v为等长向量。  [u,v,S]=find(A);返回矩阵A中非零元素的下标和元素,返回值可以作为sparse(u,v,S);的参数  full(A);返回和稀疏存储方式A对应的完全存储方式。  例如  X=[2,0,0,0,0;0,0,0,0,0;0,0,0,5,0;0,1,0,0,-1;0,0,0,0,-5] A=sparse(X) A=      (1,1) 2     (4,2) 1     (3,4) 5     (4,5) -1     (5,5) -5  A就是X的稀疏存储方式。   2.产生稀疏存储矩阵  sparse可以讲完全存储方式转换为稀疏存储方式,那么,当使用稀疏矩阵时,要先产生完全存储方式的矩阵,然后再转换,这显然是不可取的,MATLAB有自己产生稀疏矩阵的函数spconvert:  B=spconvert(A);A为一个m*3或m*4的矩阵,A的每一列的意 义分别为:  (i,1)第i非零元素所在行 (i,2)第i非零元素所在列 (i,3)第i非零元素的实部 (i,4)第i非零元素的虚部      3.带状稀疏存储矩阵  举个例子:         是一个具有稀疏性质的带状矩阵。  首先,找出矩阵的特征数据:         B为三条对角线元素,d为对角线号,-3为主对角线下第三条,0为主对角线,3为主对角线上第三条。 可以利用spdiags产生稀疏矩阵 A=spdiags(B,d,5,6);  也就是spdiags的调用格式 A=spdiags(B,d,m,n);  B为r*p阶矩阵,r=min(m,n),p为原带状矩阵中所有非零对角线的条数,B的第i列即为原带状矩阵的第i条非零对角线。 spdiags的其他调用格式:  [B.d]=spdiags(A);从原带状矩阵提取全部对角线元素赋给B并把对角线位置赋给d;  B=spdiags(A,d);从带状矩阵中提取由d指定的非零对角线元素构成的矩阵;  E=spdiags(B,d,A);将A中d指定的对角线元素由B代替构成新矩阵E。     4.单位矩阵的稀疏矩阵   speye(m,n);产生m*n的稀疏存储单位阵。

matlab 稀疏矩阵调用,matlab 稀疏矩阵相关推荐

  1. c 使用matlab引擎,[转载]C与MATLAB混合编程之调用MATLAB引擎

    Visual Studio调用MATLAB需要的配置已经在<Visual Studio调用MATLAB的配置>一文中给出了详细的步骤,本文将介绍混合编程的示例. 在C中调用MATLAB,据 ...

  2. c 与matlab混编,C与MATLAB混合编程之调用MATLAB引擎

    Visual Studio调用MATLAB需要的配置已经在<Visual Studio调用MATLAB的配置>一文中给出了详细的步骤,本文将介绍混合编程的示例. 在C中调用MATLAB,据 ...

  3. Java程序调用MATLAB接口

    Java程序调用MATLAB接口 文章目录 Java程序调用MATLAB接口 一.注意事项 二.环境安装 三.MATLAB如何生成JAR包 四.MATLAB生成的JAR包如何引入到Java程序中 五. ...

  4. 在matlab如何调用库函数,Matlab调用外部库函数方法和注意事项

    在MATLAB环境下访问外部函数的共享库文件,必须首先把该库文件加载到内存中.一旦加载成功,就 能直接在MATLAB中直接请求关于函数的任何信息.而当不再需要该库时,就应当及时把库文件从内存 中卸载以 ...

  5. Python如何调用matlab函数?

    仅需一步就能搭建好两者的通道! 在matlab的命令行下键入: cd (fullfile(matlabroot,'extern','engines','python')) system('python ...

  6. matlab中调用java代码_Matlab中调用第三方Java代码

    在Java中采用Matlab JA Builder可以实现调用m文件,采用这样的方式,可在Matlab的M文件中,直接调用Java类.这种方式可以表示为Java--> Matlab( m, Ja ...

  7. Qt调用MATLAB

    Qt调用MATLAB 生成的dll经验分享 由于项目需要将生成的数据转成C3D运动捕捉格式,目前无C++转换算法,有MATLAB算法,考虑到C++重新码算法的时间,选择了将MATLAB算法直接转成C+ ...

  8. VS下调用Matlab引擎

    VS2008是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快.但在科学计算方面函数库显得不够丰富.读取.显示数据图形不方便.Matlab是一款将数值分析.矩阵计算.信号处理和图形显 ...

  9. VS2013和MATLAB相互调用混合编程

    Visual Studio和MATLAB混合编程,有两种方法: 1 MATLAB调用C程序: 2 VS调用MATLAB(目前见到的都是VS,其他编译器如codeblocks,或不提供这项功能): MA ...

最新文章

  1. Adobe Premiere Elements 2021中文版
  2. 三星note2+android8.0,放大版Note2 三星Galaxy Note8.0
  3. 【转】程序员该做的事 - 每天、每周、每月
  4. 在Windows系统安装Nodejs
  5. nm命令中符号类型详解
  6. 资源 | 深度学习课程入门与介绍
  7. mysql bug_MySQL 记一次 Bug发现过程
  8. java播放声音类和一个简单示例
  9. [Java] 蓝桥杯ALGO-63 算法训练 乘法表
  10. C++学到什么程度才算是精通?
  11. 【收藏】夜光遥感数据下载网址及方式
  12. 伍德里奇计量经济学导论pdf_伍德里奇 计量经济学导论 第三章第三节 2 OLS无偏定理...
  13. 新能源汽车前景广袤但痛点多多,大圆柱电池能否提供最优解?
  14. 小米无线键盘的连接方式
  15. redis系列,redis的异步删除我该怎么用?
  16. Time-Evolving Graph Convolutional Recurrent Network for Traffic Prediction论文笔记
  17. 电源芯片选择DC/DC还是LDO?及怎样选择LDO芯片
  18. <<视觉问答>>2021:Zero-shot Visual Question Answering usingKnowledge Graph
  19. 西蒙菲莎大学计算机研究性硕士,不只是知名大学:西蒙菲莎大学你需要知道这些!...
  20. 在VMware中安装红帽Linux系统

热门文章

  1. TS101的链式DMA操作方法
  2. 联想潮7000怎么安装Java_联想小新潮7000系统安装 怎么用u盘安装系统
  3. 联想小新潮7000 14IKBR CFG解锁过程分享
  4. 两个变量数据交换的方法
  5. SIGGRAPH Course: Physically Based Shading in Theory and Practice(PBR渲染技术相关一些课程资源和文章)
  6. html表格显示列与隐藏列_在宽表上隐藏/显示HTML表格列
  7. 半导体器件物理【10】载流子输运现象 —— 电流密度、散射
  8. Android 调用优酷SDK上传视频
  9. Kalman滤波算法解释与实现
  10. Processing-Minim翻译----------Class Minim