如何在MATLAB中找到矩阵所有行中出现的值的频率?
我在MATLAB中有一个161*32的矩阵(标记为“indpic”),我试图找到一行中出现的给定数字的频率。所以我认为我需要为每一个值分别分析每一行,但我非常不确定该如何进行(我对MATLAB只是一个新手)。这也意味着我对循环之类的东西毫无用处 任何帮助都将不胜感激 像这样如何在MATLAB中找到矩阵所有行中出现的值的频率?,matlab,rows,frequency,Matlab,Rows,Frequency,我在MATLAB中有一个161*32的矩阵(标记为“indpic”),我试图找到一行中出现的给定数字的频率。所以我认为我需要为每一个值分别分析每一行,但我非常不确定该如何进行(我对MATLAB只是一个新手)。这也意味着我对循环之类的东西毫无用处 任何帮助都将不胜感激 像这样 sum(indpic(rownum,:) == 7) 显然,将7更改为任意值。如果要计算特定数字在每行中出现的次数,可以执行以下操作: sum(indpic == val, 2) 其中,indpic是您的矩阵(例如图像)
sum(indpic(rownum,:) == 7)
显然,将7更改为任意值。如果要计算特定数字在每行中出现的次数,可以执行以下操作:
sum(indpic == val, 2)
其中,indpic
是您的矩阵(例如图像),而val
是需要计数的值
说明:检查每个元素与该值的相等性将生成一个布尔矩阵,在计数值的位置处显示“1”。对每行求和(即沿第二维度求和得到所需的列向量,其中每个元素等于相应行中重复的次数val
)
如果要计算每个值在图像中重复的次数,这称为a,您可以使用命令来实现。例如:
histc(indpic, 1:256)
计算从1到256的每个值在图像indpic
中出现的次数,您可以直接写入
length(find(indpic(row_num,:)==some_value))
它将为您提供与矩阵“indpic”第“row_num”行中的“some_value”相等的元素数。
2
表示值沿第二维度(即行)求和。