声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1362|回复: 4

[编程技巧] matlab现在有50个矩阵,如何得到矩阵的每个对应元素大于0的百分比

[复制链接]
发表于 2014-4-13 11:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
现在有50个矩阵,如何得到矩阵的每个对应元素大于0的百分比?

回复
分享到:

使用道具 举报

发表于 2014-4-13 22:38 | 显示全部楼层
本帖最后由 牛小贱 于 2014-4-14 16:36 编辑

给你个简单例子, a = [0.1 0 0 0.2 0.4 0 0  0.9],求矩阵中不为0元素的个数,并且计算其百分比。程序代码:
  1. a = [0.1 0 0 0.2 0.4 0 0  0.9];
  2. b = a(a~=0)
  3. r = numel(b)/numel(a)
复制代码
或者:
  1. nnz(a)/numel(a)
复制代码
求不为0的元素的个数 可以利用以下代码:
  1. sumA=sum(find(a)~=0);%求不为0的元素的个数
复制代码
求百分比也可以利用一下代码:
  1. b = tabulate(a);    % tabulate是查看元素并统计百分比的函数
  2. b(b(:,1)==0,3)
复制代码
只是给楼主一个参考。可以依次类推。希望对你有用!!

点评

赞成: 5.0
赞成: 5
很有启发性!!!谢谢~  发表于 2014-4-15 15:16

评分

1

查看全部评分

回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2014-4-15 20:29 | 显示全部楼层
谢谢!
我令每一个矩阵中小于0的元素为0,大于的元素为1.即a(a<=0)=0;a(a>0)=1;再把所有这样的矩阵加起来除以50就可以了。。

点评

赞成: 5.0
赞成: 5
  发表于 2014-4-15 20:45

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-23 19:16 , Processed in 0.058510 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表