首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MATLAB中大矩阵中的数据过滤

MATLAB中大矩阵中的数据过滤
EN

Stack Overflow用户
提问于 2016-02-09 16:48:41
回答 1查看 254关注 0票数 1

在MATLAB中,我正在处理一个大小为200 K*150 K的矩阵URm,其元素在0-5之间。

我想过滤这些值,这样我就可以访问值为4-5和1-2的矩阵企业。在第一种情况下,我是成功的,但在尝试使用第二种情况时,我遇到了错误。

代码语言:javascript
运行
复制
  Upos = sparse(URm > 3)       ;
  Uneg = sparse(URm<3 & URm>0) ;

我可以获得Upos,但是对于Uneg,我遇到了以下错误:

代码语言:javascript
运行
复制
Error using  < 
Requested 30711160620x1 (228.8GB) array exceeds maximum array size   preference. Creation
of arrays greater than this limit may take a long time and cause MATLAB to become
unresponsive. See array size limit or preference panel for more information.

Error in Provide_Information_about_URm (line 14)
Uneg = sparse(URm<3 & URm>0)   

这一误差更可能是因为MATLAB在应用操作之前生成了一个内部矩阵,占用了很大的空间。你认为怎样才能解决这个问题?谢谢你提前提出意见。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-09 17:02:17

表达式URm<3对于几个值都是正确的,包括URm的所有零,这可能是几乎所有的元素。这导致了一个非常大的稀疏矩阵,只有很少的非零元素。

相反,用永远不选择零的方式重写逻辑。

代码语言:javascript
运行
复制
Uneg=xor(URm>=3,URm>0)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35297563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档