Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 查找每行的频率(3)_Matlab - Fatal编程技术网

Matlab 查找每行的频率(3)

Matlab 查找每行的频率(3),matlab,Matlab,根据我几天前的问题,现在,我有几个mx3矩阵,行从0,1,num,-1,0,num,0,1,num,0,-1,num,1,1,num,-1,num,-1,num,其中num是一个整数,可以取0到3之间的任何值。 我想创建一个新的矩阵,有8行6列,其中前两列表示上述坐标,其余每列表示频率 在每个num值处的上述每个坐标的。i、 e.每行的第3列表示我们看到与该行对应的坐标的次数,且num=0。每行的第4列表示我们看到与该行对应的坐标的次数,且num=1。 每行的第5列表示我们看到与该行对应且num

根据我几天前的问题,现在,我有几个mx3矩阵,行从0,1,num,-1,0,num,0,1,num,0,-1,num,1,1,num,-1,num,-1,num,其中num是一个整数,可以取0到3之间的任何值。 我想创建一个新的矩阵,有8行6列,其中前两列表示上述坐标,其余每列表示频率 在每个num值处的上述每个坐标的。i、 e.每行的第3列表示我们看到与该行对应的坐标的次数,且num=0。每行的第4列表示我们看到与该行对应的坐标的次数,且num=1。 每行的第5列表示我们看到与该行对应且num=2的坐标的次数,每行的第6列表示我们看到与该行对应且num=3的坐标的次数

例如,如果A=[0 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 -1 0 1 1 0 1 1 3 1 1 2 1 1 3 1 13]

我想看看这样的东西: -1 -1 0 0 0 0 -1 0 0 0 0 0 -1 1 0 0 0 0 0 -1 0 0 0 0 0 1 0 1 0 0 1 -1 1 0 0 0 1 0 1 0 0 0 1 1 7 1 1 3 有办法吗?谢谢。

试试这个:

counts = zeros(9, 6); % Initialize output matrix

k = 1;
for ii = -1:1
    for jj = -1:1
        ijCoords = (A(:,1) == ii) & (A(:,2) == jj); % Find rows containing coordinate (ii,jj)
        ijCount = histc(A(ijCoords,3), 0:3); % Count how many 0,1,2,3 in these rows
        counts(k,:) = [ii, jj, ijCount(:)']; % Add the counts to the next row of the output matrix
        k = k + 1;
    end
end

counts(5, :) = []; % Remove coordinate (0,0) because you don't want it.