MATLAB: Count specific values in a matrix and Find row and column number of the first value among consecutive same values.

counting consecutive same values and call the first row and column number of a specific value

1) Counting the number of the specific values. such as
[1 1 1 1 1 1 2 2 2 2 3 3 3 3 3 4 4 4 4 4 4 4 4 4 5 5 5 6 6 6 6 6 6 6 6 7 7 7 8 8 8 8 8 ….]
=> result [ 6 4 5 ….]
2) Call the first row and column number of a specific value.
the first '2' value is [row column] = [1 7]

Best Answer

s = [1 1 1 1 1 1 2 2 2 2 3 3 3 3 3 4 4 4 4 4 4 4 4 4 5 5 5 6 6 6 6 6 6 6 6 7 7 7 8 8 8 8 8];
1)
t = [true,diff(s)~=0];
[ii,jj]=find(t);
result = diff([jj,numel(s)+1]);
2)
out = [s(t);ii;jj]';