これらのMatlabプロットグラフ(セグメントごと)とユーザー入力しきい値からの基準を満たした後、txtに書き込む前に新しい質問があり、Matlabはファイル全体をロードしますが、セグメントごとに表示およびプロットします
グラフをプロットし、ピーク ノード (> しきい値) を表示するように依頼されましたが、ノードをプロットすることしかできず、ここでスタックしています。
この写真が示すものをプロットしようとしていますが、問題があります。
これが私のコードです:
for e = 1:size(rows,1),
%plot normal graph first, hold it before plotting nodes
%so that it is combined
figure,plot(rows(e,:)), hold on;
%put the 'INPUT' statement outside the loop, or it will be evaluated
%multiple times (every time all the other conditions are true)
threshold = input('Key in the threshold value to use: ');
% loop over this if statement to find peaks in this row
for k = 2 : 999
if (rows(e,k) > rows(e, k-1) && rows(e,k) > rows(e,k+1) && rows(e,k) > threshold)
beat_count = beat_count + 1;
peaks(beat_count)=rows(e,k);
peak_x(beat_count) = k + 1000 * (e - 1);
plot(rows(e,peak_x(beat_count)),'ro');
end
end
%pop up text to plot new segment
fprintf(1, 'press any key to continue!\n');
% pause, on keypress go to next plot
pause;
end
% since peaks array keeps growing, we should print it out all at once:
fprintf(fid, 'the following peaks were found:\n');
for ii = 1:beat_count
fprintf(fid, 'x = %d; peak = %f\n ', peak_x(ii), peaks(ii)); %open writer
end
fclose(fid); % close the file once you're done
実際には3つの質問がありますが、1つずつ解決したいので、最初の1つは
'O'
グラフをプロットし、ユーザーが入力したしきい値よりも大きいノードにピーク ノードを表示します (ピークをプロットすることはできます'O'
が、すべて 1 か所でスタックしています)。グラフがすべてに分割されている
1000
ため、x 軸の値を増やすことはできますか? 最初のプロットが0
to1000
から、2 番目のプロットが to になるよう1001
に2000
、データ全体の長さまで続きます。開始したいセグメントからのユーザー入力を許可します。たとえば、値をキー入力してからプロット
3001
し4000
、しきい値をキー入力した後、すべての出力を書き込むのではなく、テキスト ファイルに出力を書き込みます。最後にすべてのテキストファイル。(途中で何かエラーが発生した場合は、すべてをやり直す必要があるため、途中で何かが発生した場合にプロセス全体を繰り返すのを防ぎ、停止したところから開始することもできます)