我在 MATLAB 中有一个 161*32 矩阵(标记为“indpic”),我试图找出给定数字连续出现的频率。所以我认为我需要为每个值分别分析每一行,但我非常不确定如何去做(我只是 MATLAB 的新手)。这也意味着我对循环和诸如此类的东西非常无用。
任何帮助将不胜感激!
如果要计算特定数字在每一行中出现的次数,可以这样做:
sum(indpic == val, 2)
indpic
您的矩阵(例如图像)在哪里,并且是val
要计算的所需值。
说明:检查每个元素与值的相等性会在计数值的位置产生一个带有“1”的布尔矩阵。对每一行求和(即沿第二维求和得到所需的列向量,其中每个元素等于val
在相应行中重复的次数)。
如果您想计算每个值在图像中重复的次数,这称为直方图,您可以使用该histc
命令来实现。例如:
histc(indpic, 1:256)
计算从 1 到 256 的每个值在 image 中出现的次数indpic
。
像这样,
sum(indpic(rownum,:) == 7)
显然将 7 更改为任何内容。
你可以写
length(find(indpic(row_num,:)==some_value))
它会给你在矩阵“indpic”的“row_num”行中等于“some_value”的元素数量