首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >sparse ()在稀疏矩阵上的不明确行为

sparse ()在稀疏矩阵上的不明确行为
EN

Stack Overflow用户
提问于 2021-07-17 14:54:37
回答 1查看 41关注 0票数 1

我试图更好地理解对称()函数如何作用于sparseCSC矩阵。

我存储了对称矩阵A的下三角部分,然后创建了sA = Symmetric(A),以允许Julia库函数"\“和"eigs”将矩阵视为对称矩阵。

如果我想有效地修改sA的元素,我是不是必须在A上操作?我的意思是,在A中,我可以访问结构属性nzval并更改它的值,但是在sA中,我似乎只能使用密集矩阵的标准切片操作来访问数据。

例如,让我们假设我想要在位置7,3添加某个值X。使用稀疏矩阵表示法,我将只对与A的第3列相关联的行使用二进制搜索,然后将该值添加到A.nzval的适当条目。另一方面,在sA上,我只能调用sA7,3 = X。

有没有办法直接从sA访问结构属性?将A和sA都作为对同一对象的引用看起来不像是一个干净的想法,但我不确定如何避免这种情况。

EN

回答 1

Stack Overflow用户

发布于 2021-07-18 06:30:03

虽然这可能是也可能不是公共API的一部分,但看起来“保留A”确实是Symmetric(A)在内部所做的事情:

代码语言:javascript
运行
AI代码解释
复制
julia> A = sprand(10,10,0.03)
10×10 SparseMatrixCSC{Float64, Int64} with 2 stored entries:
  ⋅    ⋅    ⋅    ⋅    ⋅         ⋅         ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅         ⋅         ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅   0.437621   ⋅         ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅         ⋅         ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅        0.913864   ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅         ⋅         ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅         ⋅         ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅         ⋅         ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅         ⋅         ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅         ⋅         ⋅    ⋅    ⋅    ⋅

julia> sA = Symmetric(A)
10×10 Symmetric{Float64, SparseMatrixCSC{Float64, Int64}}:
 0.0  0.0  0.0       0.0  0.0       0.0       0.0  0.0  0.0  0.0
 0.0  0.0  0.0       0.0  0.0       0.0       0.0  0.0  0.0  0.0
 0.0  0.0  0.0       0.0  0.437621  0.0       0.0  0.0  0.0  0.0
 0.0  0.0  0.0       0.0  0.0       0.0       0.0  0.0  0.0  0.0
 0.0  0.0  0.437621  0.0  0.0       0.913864  0.0  0.0  0.0  0.0
 0.0  0.0  0.0       0.0  0.913864  0.0       0.0  0.0  0.0  0.0
 0.0  0.0  0.0       0.0  0.0       0.0       0.0  0.0  0.0  0.0
 0.0  0.0  0.0       0.0  0.0       0.0       0.0  0.0  0.0  0.0
 0.0  0.0  0.0       0.0  0.0       0.0       0.0  0.0  0.0  0.0
 0.0  0.0  0.0       0.0  0.0       0.0       0.0  0.0  0.0  0.0

julia> sA.<TAB>
data uplo

julia> sA.data
10×10 SparseMatrixCSC{Float64, Int64} with 2 stored entries:
  ⋅    ⋅    ⋅    ⋅    ⋅         ⋅         ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅         ⋅         ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅   0.437621   ⋅         ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅         ⋅         ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅        0.913864   ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅         ⋅         ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅         ⋅         ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅         ⋅         ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅         ⋅         ⋅    ⋅    ⋅    ⋅
  ⋅    ⋅    ⋅    ⋅    ⋅         ⋅         ⋅    ⋅    ⋅    ⋅

julia> sA.data === A
true

julia> sA.data.<TAB>
colptr m       n       nzval   rowval

考虑到这一点,我想您可以忘记A并对sA.data进行操作--但是出于同样的原因,对于这个实现,保留您自己对A的引用并不比同一个变量有两个名称更糟糕,这通常不是一个大问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68421625

复制
相关文章
spyglass | 常见错误lint
我们将分析 lint目标运行期间产生的违规行为。我们可以使用 SpyGlass GUI 中的各种调试工具来了解违规,在 RTL 代码中调试,并查看如何在 SpyGlass 环境本身中修复这些违规。并且在更改 RTL或者.prj文件之后都必须重新运行。
数字芯片社区
2021/10/11
11.5K0
Xcode10发布 Pod lint错误
我猜想是不是基于 Xcode10最新的编译系统导致的,幸亏保留了 Xcode9.4.1的包,安装切换为 Xcode9.4.1.验证成功
君赏
2018/12/25
5190
MySQL连接错误
ERROR 1045 (28000): Access denied for user’root’@’localhost’(using password:YES)
一点儿也不潇洒
2018/08/07
3.6K0
MySQL连接错误
[每日一题]字符串的连接
上一次是要反序输出字符串,而这次是要连接两个字符串,难度都不大,快来试试吧! 题目描述 写一函数,将两个字符串连接 输入 两行字符串 输出 链接后的字符串 样例输入 123 abc 样例输出 123abc PS:题解见C语言网1032题 偷偷告诉大家一个函数,可以连接字符串哦,不知道的快去查一下吧 更有非常暴力的解题法等你来尝试 距离C语言网有奖月赛还有3天的时间,大家加油哦! 另外,有兴趣的同学还可以加入C语言网官方微信群,一起讨论C语言 通过加小编:dotcppcom 备注:C语言网昵称(需
编程范 源代码公司
2018/04/18
1.9K0
strchecker——Go源码字符串规范检查lint工具
在大型项目开发过程中,经常会遇到打印大量日志,输出信息和在源码中写注释的情况。对于软件开发来说,我们一般都是打印输出英文的日志(主要考虑软件在各种环境下的兼容性,如果打印中文日志可能会出现乱码,另外英文日志更容易搜索,更容易后续做国际化),但是对于我们中国人来说,很容易就把中文全角的中文标点符号一不注意就写到日志中了。不过源码中的注释因为是完全面向开发者的,不会面向客户,所以如果研发团队全是中国人,那么代码注释用中文就更有效率。
深蓝studyzy
2022/06/16
4110
宽带连接错误的处理办法
作者:matrix 被围观: 3,563 次 发布时间:2012-06-12 分类:兼容并蓄 | 2 条评论 »
HHTjim 部落格
2022/09/26
1.2K0
宽带连接错误的处理办法
MySQL连接错误的十二“坑”
环境准备 自建MySQL环境主机 主机:iZbp1e*****krn92qrx0Z 内网ip: 10.26.254.217 客户端ecs主机 主机:iZbp1e6*****zkrn92qrwzZ 内网ip: 10.24.236.231 说明 说明:mysql的account的组成为’user’@’host’ 常见问题分析 ERROR 1045 (28000) 现象描述 ERROR 1045 (28000): Access denied for user 'testcon'@'10.24.236.231' (
数据和云
2018/03/07
4.1K0
MySQL连接错误的十二“坑”
AndroidLintWatchDog Custom-Lint 自定义Lint检查的实现
Android自定义Lint检查有效提升代码质量、避免人工的低级失误、规范代码,属于程序自动化的内容,这部分内容涉及的资料较少,但是实际意义重大,尤其是对有规模的团队而言。
open
2020/03/19
9220
AndroidLintWatchDog Custom-Lint 自定义Lint检查的实现
Java连接SqlServer错误
这次使用的是 SqlServer 数据库,之前并没有使用过,但是问题不大,我按照需求文档的步骤连接好 SqlServer 之后,启动 SpringBoot 项目,发现了一个报错,如下:
程序员Leo
2023/08/07
5050
Java连接SqlServer错误
字符串连接
/* 功能:字符串连接 日期:2013-05-26 */ #include<stdio.h> #include<stdlib.h> #include<math.h>
WindCoder
2018/09/20
1.5K0
Custom Lint in Action
Android Lint是Google提供的静态代码检查工具,使用Lint可以对Android项目源码进行扫描和检查,发现代码潜在的问题,或者辅助开发者统一编码规范。
宅男潇涧
2018/08/01
1.1K0
Custom Lint in Action
IIS发生意外错误0x8ffe2740
IIS发生意外错误0x8ffe2740,解决办法,把迅雷卸载或者更改讯雷的TCP端口到其他,如重新启动讯雷后,运行IIS就OK了;
会长君
2023/04/26
3480
Lint Tool Analysis (2)
本系列的几篇源码分析文档意义不大,如果你正好也在研究lint源码,或者你想知道前面自定义lint规则中提出的那几个问题,抑或你只是想大致了解下lint的源码都有些什么内容的话,这些文章可能有还些作用,否则看了和没看差不多的,因为这几篇文章只是我在读源码的过程中记录下来的一些零碎的片段,方便以后看的时候能够迅速上手。
宅男潇涧
2018/08/01
2.4K1
MySQL 远程连接及错误的解决
mysql -uroot -p grant all on *.* to baimoc@'%' identified by '123456' with grant option; flush privileges;
白墨石
2021/01/13
1.2K0
401错误的解决方法_网络连接错误401
在配置IIS的时候,如果安全稍微做的好一些。就会出现各式各样的问题。比如,常见的访问网页会弹出用户名密码的登陆界面,或者是访问某种页面比如 html,asp没事情,但是访问jsp或者php就有问题,显示401.3 ACL 禁止访问资源等  通常的解决办法是。          
全栈程序员站长
2022/11/16
4.4K0
再谈Android Lint
存粹个人看法哦,静态扫描我觉得是一个在开发过程中就去避免掉一部分bug的重要的工具。但是对这方面的介绍的文章还是有点少,我其实写的也不怎么样,但是起码集思广益,互相提高吧。
逮虾户
2020/10/15
1.7K0
再谈Android Lint
java字符连接字符串数组_Java中连接字符串的最佳方法
这让我开始思考Java中连接字符串的不同方法,以及它们如何相互对抗。 这些是我要研究的方法:
用户7886150
2021/02/01
3.6K0
MYSQL vs JAVA 连接错误
最近开发告诉我,他们在测试系统的时候,会经常有连接MYSQL的连接被踢掉。具体给我的解释是,JAVA的缓冲池连接MYSQL 保持连接,但再次使用的时候,报连接错误。
AustinDatabases
2019/07/12
4K0
MYSQL  vs JAVA 连接错误
redis Windows 服务 启动异常,错误1067:进程意外终止。 原
注意这个命令中使用的是 redis.windows-service.conf 这个配置文件
北漂的我
2019/05/29
5.4K0
MySQL中的字符串连接
MySQL concat函数是MySQL数据库中众多的函数之一,下文将对MySQL concat函数的语法和使用进行说明,供您参考和学习。
用户7657330
2020/08/14
3.4K0

相似问题

JS: Lint错误:意外的标记=

12

来自‘lint`’的意外提示

11

意外的“意外行尾”JavaScript lint警告

11

Atom中的sass-lint抛出“意外分析错误”

24

声明模块正在导致lint错误‘意外令牌,预期的“{”

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文