在满足这些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 将是
绘制图表并将峰值节点显示
'O'
为大于用户输入的阈值的节点(我设法绘制了峰值'O'
,但它都卡在了一个地方)由于图形被分割成 each
1000
,是否可以增加 x 轴上的值?就像第一个图是从0
到1000
,第二个是1001
到2000
,依此类推,直到数据的整个长度。允许用户从他们想要开始的任何部分输入,例如,我可以输入一个值,这样我将绘制 from
3001
到4000
每次输入阈值后,它会将输出写入文本文件,而不是将所有输出写入文本文件最后。(如果中途出现任何错误,您需要重做所有事情,这是为了防止在中途发生任何事情时重复整个过程,我也可以从我停止的地方开始)