产品
产品概览
Mathematica
Mathematica 学生版
Mathematica Home Edition
Wolfram
CDF Player
(免费下载)
可计算文档格式(CDF)
web
Mathematica
grid
Mathematica
Wolfram
Workbench
Wolfram
SystemModeler
Wolfram
Finance Platform
Mathematica
附加程序包
Wolfram|Alpha 产品
解决方案
解决方案概览
工程
航空航天与国防
化学工程
控制系统
电气工程
图像处理
工业工程
材料科学
机械工程
运筹学
光学
石油工程
生物技术与医药
生物信息学
医学影像
金融、统计、商业分析
精算科学
数据分析与挖掘
计量经济学
经济学
金融工程与数学
金融风险管理
统计
软件工程、内容传递
创作与出版
界面开发
软件工程
网页开发
科学
天文学
生物科学
化学
环境科学
地球科学
社会与行为科学
设计、艺术以及娱乐
游戏设计、特殊效果及衍生艺术
教育
STEM 教育倡议
高等教育
高职高专院校
中小学教育
学生
科技
可计算文档格式(CDF)
高性能并行计算(HPC)
参见:技术指南
购买
网上商店
其它购买方式
批量许可及站点许可证
联络销售部
软件
服务
升级
培训
书籍
Merchandise
技术支持
技术支持概览
Mathematica
参考资料
知识库
学习中心
技术服务
社区与论坛
培训
查看站点是否有许可证授权
Wolfram 用户门户
公司概况
关于 Wolfram Research
新闻与活动
Wolfram 博客
合作伙伴
工作机会
Mathematica
的历史
Stephen Wolfram 主页
联系我们
公司网站
全部站点
Wolfram|Alpha
演示项目
MathWorld
Integrator
Wolfram Functions Site
Mathematica Journal
Wolfram Media
Wolfram
Tones
Wolfram Science
Stephen Wolfram
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE
DOCUMENTATION CENTER
FOR THE LATEST INFORMATION.
DOCUMENTATION CENTER SEARCH
New to
Mathematica
?
Find your learning path
»
Mathematica
>
数学和算法
>
矩阵和线性代数
>
稀疏数组
>
SparseArray
>
Mathematica
>
数学和算法
>
图与网络
>
图的构建
>
图和矩阵
>
稀疏数组
>
SparseArray
>
Mathematica
>
数学和算法
>
图与网络
>
图编程
>
矩阵和线性代数
>
稀疏数组
>
SparseArray
>
MATHEMATICA 内置符号
构建列表
稀疏数组:列表的处理
稀疏数组:线性代数
教程 »
|
ArrayRules
Normal
Band
CoefficientArrays
ArrayPlot
Array
ConstantArray
参见 »
|
构造列表
构造矩阵
图和矩阵
大型数组的处理
线性和非线性滤波
列表操作
矩阵和线性代数
向量操作
稀疏数组
结构矩阵和卷积内核
张量
更多关于 »
SparseArray
SparseArray
生成一个稀疏数组,
处的值为
.
SparseArray
生成相同的稀疏数组.
SparseArray
[
list
]
生成一个稀疏数组
list
.
SparseArray
生成一个稀疏矩阵,表示一个
数组.
SparseArray
生成一个稀疏数组,使得该数组中未被说明的元素赋值
val
.
更多信息
在默认情况下,
SparseArray
中未被说明元素默认值为
.
SparseArray
通常会转换为最优标准格式,其结构为
SparseArray
[
Automatic
,
dims
,
val
,
...
]
.
Normal
根据稀疏数组对象,给出相应的普通数组形式.
ArrayRules
给出一系列的规则列表
.
SparseArray
中的元素可以是数字以外的其他形式.
位置
可以包含模式.
SparseArray
给出
d
×
d
单位矩阵.
规则
Band
[
...
]->
vals
给出在稀疏矩阵中边界处的元素的值.
在规则
下,对与
匹配的每一个指标集,
值会被分别计算出来.
SparseArray
[
list
]
要求
list
是一个完全数组, 即特定层的所有分量有相同的长度.
稀疏数组中的单个元素不能成为列表.
SparseArray
[
rules
]
生成一个维数足够大的数组,使其能够包含指定位置的元素.
SparseArray
[
rules
,
Automatic
,
val
]
为未说明的元素赋值
val
.
列表和矩阵的操作也可以在
Normal
上使用.
具有
Listable
属性的函数自动线性作用于
SparseArray
对象表示的单个元素.
Part
提取由
SparseArray
对象表示的数组的指定部分,而不是
SparseArray
表达式本身的组成部分.
一些函数,如
Map
可以自动作用于
SparseArray
对象中的分量.
和一些函数如
AtomQ
联用以及用于模式匹配时,
SparseArray
被作为原始对象处理.
Dimensions
给出数组维数.
稀疏数组的标准输出格式显示未说明元素的个数及整个数组的维数.
范例
关闭所有单元
例
(1)
构造稀疏数组,只指定部分位置元素的值:
以矩阵形式显示:
转换为一个稠密矩阵:
构造稀疏数组,只指定部分位置元素的值:
In[1]:=
Out[1]=
以矩阵形式显示:
In[2]:=
Out[2]//MatrixForm=
转换为一个稠密矩阵:
In[3]:=
Out[3]=
范围
(7)
创建一个大型的稀疏向量,矩阵和深度为3 的数组:
创建一个三对角矩阵,用下标的模式:
创建一个 10,000
10,000 矩阵:
创建一个稀疏的对角矩阵:
它等同于
DiagonalMatrix
:
一个稀疏矩阵占用较少的内存:
用规则
Band
构建一个分块对角矩阵:
将一个普通矩阵转化为一个稀疏矩阵:
创建一个4阶稀疏张量,设置随机位置的值:
ArrayRules
生成一个规则的最小列表,它需要指定
SparseArray
:
许多典型的操作对
对象起作用,对其它同类型列表也起作用:
适用于元素的算法同样适用于列表:
矩阵积采用
Dot
:
许多线性代数函数可以用稀疏的形式:
许多其它列表命令自动运算:
推广和延伸
(2)
未说明的元素可以使任意值:
可以使用本地定义的符号变量:
构建一个有机器精度数值的稀疏矩阵:
用确切整数值构建稀疏矩阵:
N
[
s
]
和
相同:
应用
(4)
创建一个只有单一非0元素的列表:
绘制一个规则列表:
表示一个有联结矩阵的网络:
利用有限的不同的点, 求解边界值问题
:
属性和关系
(3)
一个
SparseArray
对象和相应的普通列表
Equal
:
它们不是
SameQ
,因为表达结构不同:
涉及到 SparseArray 对象的函数
f
,通常
f
[
s
]==
f
[
Normal
[
s
]]
:
这包括所有
为
Listable
的函数:
使用
CoefficientArrays
把线性表达式转换成
SparseArray
对象:
使用
Dot
把
SparseArray
转换成表达式:
可能存在的问题
(6)
如果
SparseArray
中同一坐标位置在变换规则表中重复出现, 以首次出现的为准:
由于数据量过大而无法全部表示时,稀疏数组给出下面的表现形式:
用
Normal
会给出一个
:
在默认情况下,稀疏数组的操作不会检验取消操作:
用
SparseArray
重新计算稀疏数组结构:
在对
SparseArray
进行迭代计算时. 有误差的操作可能会给出不同的值:
用
Reap
和
Sow
,可以显示存取的元素:
对于一个
SparseArray
对象,
Part
给出对应的列表的部分:
FullForm
是从基本存储信息中的重构对象的方式:
如果不必要的,但你需要时,你可以用模式指令得到完整形式中的某一部分:
一些不能作用于表达式的函数,在作用于
SparseArray
的对象时,该对象会被作为基本单位而无法处理:
Cases
不能作用于表示的矩阵:
可以使用
ArrayRules
的结果,这样不用展开就可以能得到信息:
巧妙范例
(1)
游戏人生:
参见
ArrayRules
Normal
Band
CoefficientArrays
ArrayPlot
Array
ConstantArray
教程
构建列表
稀疏数组:列表的处理
稀疏数组:线性代数
更多关于
构造列表
构造矩阵
图和矩阵
大型数组的处理
线性和非线性滤波
列表操作
矩阵和线性代数
向量操作
稀疏数组
结构矩阵和卷积内核
张量
相关链接
关于内部实现的一些注释: 数值及相关函数
版本 5 的新功能 | 版本 6 修改功能