Re: [問題] 從矩陣中找出相同、出現次數已回收
※ 引述《Ysen (ㄎㄎㄎ)》之銘言:
: 假設我今天有一個矩陣a
: a=[1 1 1 1 2 3 4 3 2 5 5 5 5 5 6 7 8 7 6 3 3 3 3 3 9 7 8 6];
: 我想找出a相同且連續的地方,b...
: b=[1 1 1 1 5 5 5 5 5 3 3 3 3 3];
: 再從b裡面找出1,5,3重複幾次...
: 我本想利用if判斷式來做..但想想matlab也許有比較容易的指令...
: 是否可請版上高手教導一下..
: 謝謝
a=[1 1 1 1 2 3 4 3 2 5 5 5 5 5 6 7 8 7 6 3 3 3 3 3 9 7 8 6];
da=diff(a);
da= Columns 1 through 9
0 0 0 1 1 1 -1 -1 3
Columns 10 through 18
0 0 0 0 1 1 1 -1 -1
Columns 19 through 27
-3 0 0 0 0 6 -2 1 -2
用diff的原因是 找相同且連續的地方=diff為0的地方
然後使用logic array的方式找出a中對應的值
c=a(da==0)
Columns 1 through 9
1 1 1 5 5 5 5 3 3
Columns 10 through 11
3 3
再用unique找到不重複的數字 這裡是1 3 5
然後去算c裡面1 3 5各出現的次數再加1 (因為diff會少一項)
程式碼如下:
clear all;clc;
a=[1 1 1 1 2 3 4 3 2 5 5 5 5 5 6 7 8 7 6 3 3 3 3 3 9 7 8 6];
da=diff(a)
c=a(da==0)
d=unique(c)
table=zeros(2,size(d,2));
for m = 1:size(d,2)
table(1,m)=d(m);
table(2,m)=size(c(c==d(m)),2)+1;
end
最後結果:
table =
1 3 5
4 5 5
1連續出現4次 3連續出現5次 5連續出現5次
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.82.2
推
12/26 20:44, , 1F
12/26 20:44, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):