13、稀疏矩阵

这篇具有很好参考价值的文章主要介绍了13、稀疏矩阵。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、稀疏矩阵的生成

1.利用sparse函数建立一般的稀疏矩阵

2.利用特定函数建立稀疏矩阵

二、稀疏矩阵的运算


一、稀疏矩阵的生成

1.利用sparse函数建立一般的稀疏矩阵

稀疏矩阵指令的调用格式:

稀疏矩阵的创建,Matlab基础,矩阵,matlab,算法

示例1:输入一个稀疏矩阵

A=sparse([1 2 3 4 5],[2 1 4 6 2],[10 3 -2 -5 1],10,12)

运行结果:

稀疏矩阵的创建,Matlab基础,矩阵,matlab,算法

此外,sparse函数还可以将一个满矩阵转换成一个稀疏矩阵,相应的调用格式如下:

  1. S = sparse(X):X为满矩阵。

反之,MATLAB提供了full()函数把稀疏矩阵转换为满矩阵。full()函数的调用格式如下:

  1. A = full(S):S为稀疏矩阵。

示例2:生成稀疏矩阵A并转换为满矩阵

A=[1 0 0 0;0 5 0 0;2 0 0 7]

B=sparse(A) %转为稀疏矩阵

C=full(B) %转为满矩阵

运行结果:

稀疏矩阵的创建,Matlab基础,矩阵,matlab,算法

示例3:将普通矩阵转换为稀疏矩阵

A=rand(16,9)>0.95

B=sparse(A) %创建稀疏矩阵

whos

运行结果:

稀疏矩阵的创建,Matlab基础,矩阵,matlab,算法

示例4:查看稀疏矩阵中非零的信息

A=[0 0 0 1;0 0 8 0;4 0 0 0;0 0 0 0]

B=sparse(A) %创建稀疏矩阵

whos

n1=nnz(B) %查看非零元素个数

n2=nonzeros(B) %非零元素的值

n3=nzmax(B) %查看稀疏矩阵的存储空间

spy(B)

n4=nnz(B)/prod(size(B))

运行结果:

稀疏矩阵的创建,Matlab基础,矩阵,matlab,算法

注意

spy()函数对稀疏矩阵中非零元素的分布进行图形化显示:

稀疏矩阵的创建,Matlab基础,矩阵,matlab,算法

采用nnz(S)/prod(size(S))计算稀疏矩阵的非零元素密度。

2.利用特定函数建立稀疏矩阵

MATLAB提供了一些函数来创建特殊的稀疏矩阵:

稀疏矩阵的创建,Matlab基础,矩阵,matlab,算法

示例5:利用speye函数创建单位稀疏矩阵

A=speye(5) %创建5阶单位稀疏矩阵

B= speye (5,6) %创建稀疏矩阵

C=full(A)

D=full(B)

运行结果:

稀疏矩阵的创建,Matlab基础,矩阵,matlab,算法

示例6:创建非零元素为随机数的对称稀疏矩阵

A=sprandsym(5,0.1) %建立非零元素为随机数的对称稀疏矩阵

B=spones(A) %建立非零元素为1的与矩阵A维数相同的对称稀疏矩阵

C=full(A)

D=full(B)

运行结果:每次运行结果不同哦!!!

稀疏矩阵的创建,Matlab基础,矩阵,matlab,算法文章来源地址https://www.toymoban.com/news/detail-724476.html

二、稀疏矩阵的运算

  1. 满矩阵的四则运算对稀疏矩阵同样有效,但是返回结果有可能是稀疏矩阵或者满矩阵。
  2. 对于单个稀疏矩阵的输入,大部分函数输出的结果都是稀疏矩阵,
  3. 有部分函数输出的结果是满矩阵。对于多个矩阵的输入,如果其中至少有一个矩阵是满矩阵,那么大部分函数的输出结果是满矩阵。
  4. 对于矩阵的加、减、乘、除运算,只要其中有一个是满矩阵,则输出的结果都是满矩阵。
  5. 稀疏矩阵的数乘为稀疏矩阵;稀疏矩阵的幂为稀疏矩阵。

到了这里,关于13、稀疏矩阵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MATLAB知识点:矩阵的创建方法

    ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章   3.3.1 矩阵的创建方法 在MATLAB中,矩阵的创建方法主要有三种,分别是:直接输入法、函数创

    2024年02月21日
    浏览(51)
  • MATLAB学习笔记4:矩阵的创建2

    更新第四天,今天来介绍一些特殊矩阵的创建,只不过今天不是晚上工作啦,现在15:23,刚从国家博物馆回来,国博好大,逛了一小天。 1.希尔伯特矩阵(Hilbert matrix)                       这个矩阵不难,公式就是                                               

    2024年04月10日
    浏览(61)
  • MATLAB数据类型和运算符+矩阵创建

    个人主页: 学习前端的小z 个人专栏: HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 🌹1.1 特殊常量 MATLAB有些固定的变量,称为特殊常量。这些特殊常量具有特定的意义,用户在定义变量名时应避免使用。 在

    2024年04月15日
    浏览(47)
  • 根据图的信息创建邻接矩阵(MATLAB实现)

    带权无向图的顶点数目为v,边数为e,当v较大时,其邻接矩阵v*v元素数目很多,手动创建过于麻烦。 根据图中的所有边(每一条边都包含2个顶点i、j,以及边的权值w), 创建一个文本文件tu.txt,共e行3列, 第1列为i,第2列为j,第3列为w, 每一行为图中一条边的信息。 编写MATLAB函

    2024年02月12日
    浏览(39)
  • matlab基础(一):matlab中矩阵的基本运算

            在学习矩阵有关运算的时候要相信自己已经知道了很多线代知识,不然会看不懂的QAQ~  例1:生成一个3阶全1矩阵。 例2:产生一个在区间[5,15]内均匀分布的5阶随机矩阵 例3:产生均值为0.5,方差为0.3的4阶矩阵 例4:生成从10到100间具有5个元素的线性等分向量。 例5:生成

    2024年02月04日
    浏览(44)
  • MATLAB:矩阵(基础知识)

    1.矩阵的输入 2.调用矩阵 3.子数组的赋值 1. 矩阵的构造与操作 zeros 生成元素全为0的矩阵 ones 生成元素全为1的矩阵 eye 生成单位矩阵 rand 生成随机矩阵 fliplr 矩阵左右翻转 flipud 矩阵上下翻转 triu  矩阵的上三角部分 tril 矩阵的下三角部分 diag 对角矩阵 full 将稀疏矩阵化为普通

    2023年04月08日
    浏览(38)
  • MATLAB矩阵基础知识(一)

            MATLAB即Matrix Laboratory(矩阵实验室),可见MATLAB在矩阵问题上的优势,本次内容主要关于矩阵的生成调用。         矩阵是由m*n个数组成的m行n列的数表,也可以看做m个n维向量组成。若m=n则矩阵为n阶仿真。 矩阵的生成  1、直接通过键盘输入生成矩阵是最常用的

    2024年02月10日
    浏览(57)
  • 【矩阵的基本操作】——MatLab基础

    对矩阵A加一个’就表示A的转置矩阵 横拼: 对于A、B两个矩阵,我们该怎么做到使矩阵A在左,B在右形成一个新矩阵呢? 竖拼: 因为分号表示换号,所以用分号来进行竖直凭借 位置是一列一列从左往右数的,相当于门牌号只有一个数 取出矩阵A中第m行n列的元素 end(): 取矩阵

    2024年02月16日
    浏览(36)
  • Matlab中的zeros函数表示创建一个由零组成的矩阵或数组

    Matlab中的zeros函数表示创建一个由零组成的矩阵或数组。它是Matlab中的一个内置函数,用于快速生成元素全为零的矩阵。在本文中,我们将探讨zeros函数的用法以及如何使用它来创建零矩阵。 在Matlab中,zeros函数的语法如下: 其中,sz或sz1、sz2等参数表示所需矩阵的大小。可以

    2024年02月04日
    浏览(62)
  • matlab基础知识加矩阵运算初步

    ** matlab(matrix laboratory)** 功能符号 1.分号(;) 不让matlab显示运算结果,抑制输出 2.续行号(…) 某行命令太长,指令行必须多行书写时,使用“…\\\"处理,表示下一行是上一行的连续 常用指令 1.cd 显示或改变工作目录 2.clc 清空命令行窗口 3.clear 清除所有变量 clear+变量名 清除一

    2024年02月10日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包