计算矩阵的特定的值

2.696 Ansichten(30天)的
科里布拉德
科里布拉德 我麦2012
我有一个大矩阵m,我试图计算一个特定值的数量(即有多少索引价值的4 ?)
我试着使用
val = (m = = 4)之和;
但我最终val的矩阵和向量的数字。我认为这些数字是每一列,应该加在一起的总数,所以我试着另一个
num = (val = = 4)之和;
但后来我得到另一个向量/矩阵。
我能怎么做?

Akzeptierte Antwort

沃尔特·罗伯森
总和(m (:) = = 4)
2 Kommentare
MathWorks支金宝app持团队
另一种语法中可用R2018b或晚 总和(m = = 4,“所有” ) 但对于这个简单问题殖民的输入 米( :)可能更快。

Melden您西奇,嗯祖茂堂kommentieren。

Weitere Antworten (6)

Kye泰勒
Kye泰勒 我麦2012
试试这个:
numberOfNonZeros = nnz (m = = 4);
使用nnz比逻辑值转换成数字更有效,这是需要申请sum ()
1 Kommentar
沃尔特·罗伯森
沃尔特·罗伯森 我2019年8月22日
Bearbeitet:沃尔特·罗伯森 我2019年8月22日
在测试我,sum()的计时vs nnz()无法区分两种情况。nnz()可能会稍快,但计时显示的范围重叠,没有真正的结论可以达成。它会让感觉到nnz()可以更快,但我不能证明它。sum()在一个足够大的数组可以派往LAPACK毕竟。

Melden您西奇,嗯祖茂堂kommentieren。


肖恩·德Wolski
肖恩·德Wolski 我麦2012
这可以轻易完成的 histc () 独特的() 每个值的数量:
紫外线=独特的(x);
n = histc (x,紫外线);
或与 独特的() accumarray () :
[紫外线,~,idx] =独特的(x);
n = accumarray (idx (:), 1)
2 Kommentare
沃尔特·罗伯森
沃尔特·罗伯森 我11 Okt。2022
Royi是正确的。
这个问题是问,histcounts并不存在。
新的histcounts建议而不是histc ()
在你通过本边缘,然后histc()分别计数上限精确匹配的值,但histcounts数与前一本在一起。

Melden您西奇,嗯祖茂堂kommentieren。


ntsh基米-雷克南
ntsh基米-雷克南 我12 Okt。2017
Bearbeitet:ntsh基米-雷克南 我12 Okt。2017
> >
一个=
5 5 5 5 5 5 5 6 9 96
5 3 9 5 2 7 5 6 2 1
8 3 6 9 8 7 5 1 6 9
> > ans1 =总和(= = 5)
ans1 =
2 1 1 2 1 1 3 0 0 0
> > b =总和(ans1)
b =
11
1 Kommentar
Manoj Payani
Manoj Payani 我16梅2018
多谢,它完美的工作。

Melden您西奇,嗯祖茂堂kommentieren。


dipanka tanu sarmah
dipanka tanu sarmah 我2017年11月11日
随着奶奶的如果你想数一数,(如果有)使用nnz (isnan (m))

维姆·库马尔chawda
维姆·库马尔chawda 我18岁梅2020
但是如果我们想做南和任何数值在大型矩阵呢?
ans1 =总和(= = 5)所以在这我的值是数值相同(不是所有时间)和其他南是常见的。但我只需要计算数值的特定值x, x2, x3 ...............x7000在y轴上。
——许多y出现在特殊的x的值?

帕特里克·奔驰
帕特里克·奔驰 我于2021年4月2
我怎么能计算一个数组的第二列中的值取决于列中的值吗?
我有一个数组,看起来像这样:
400年0
396年0
392年1
400年0
396年1
400年1
我想知道多长时间有一个“1”或“0”旁边的“400”或其他值。
但这只给我的总数量的“1”和“0”和频率有一个392年的第一列。
4 Kommentare

Melden您西奇,嗯祖茂堂kommentieren。

Kategorien

找到更多的在矩阵和数组帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的