Re: [問題] find?已回收
※ 引述《freezein (....)》之銘言:
: 我有一串數字 ex. x=[-3, -2, -1, 0, 1, 2, 3, 2, 1, 0, -2, 2, 4]
: 我想要抓出x(i)<=0 && x(i+1)>0的x(i+1) (就是上例中的1和2)
: 然後1後面的2 3 2 1 0 -2 都被分配到跟一樣的同一的陣列
: 2後面的4 跟2一起分配到另一個陣列
: 就是依x(i)<=0 && x(i+1)>0的條件把全部的資料分段
: 之後想再把這些資料平均
: 我想了很久不知道如果要用find的話要怎麼寫
: 希望有好心人可以教我
: 感激不盡..
%%% 減掉 1e-15 只是把 0 變成負數,不然不太好處理
xidx = find(diff(sign(x-1e-15))>0); %%% xidx = [4 11];
xidx = [xidx length(x)]; %%% xidx = [4 11 13];
for k=1:length(xidx)-1
y = x(xidx(k)+1:xidx(k+1));
disp( sprintf('%d is the mean of [%s]', mean(y), num2str(y) );
end
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.27.3
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章