问题是,您试图绘制可能数千次,并在绘图上添加数千个点,这会在您的计算机上造成严重的内存和图形问题。您可以做的一件事是预先处理所有信息,然后一次绘制所有信息,这将大大减少所需时间。
figure
threshold = 2.009;
A=a>threshold; %Finds all locations where the vector is above your threshold
plot_vals = a.*A; %multiplies by logical vector, this sets invalid values to 0 and leaves valid values untouched
plot(t1,plot_vals)
由于MATLAB是一种高度矢量化的语言,这种格式不仅由于缺少for循环而计算速度更快,而且在计算机上的强度也要小得多,因为图形引擎不需要单独处理数千个点。
MATLAB处理绘图的方式是对每一行进行处理。当绘制向量时,MATLAB能够简单地将向量存储在一个地址中,并在绘制时调用一次。然而,当单独调用每个点时,MATLAB必须将每个点存储在内存中的单独位置,并单独调用所有点,并以图形方式完全单独处理每个点。
此处按请求编辑
绘图(t1(A),plot\u vals(A))