Change LineWidth with each loop

7 ビュー (過去 30 日間)
Bharat Joshi
Bharat Joshi 2020 年 2 月 26 日
回答済み: Steven Lord 2020 年 2 月 26 日
I have a code that computes different values for variable "component" in each iteration of a for loop and then plots this variable in subplot(3,1,1). With each click/button press I get a new curve added to subplot(3,1,1). I want the last curve that was plotted to stand out by having a thicker LineWidth.
clear all
fs = 10000;
t = 0 : 1/fs : 1;
component = 0;
sig = 0;
N = 10; %Number of iterations
for i = 1:N
f(i) = 2^(i-1);
waitforbuttonpress %button press or click
component = (100/i)*sin(2*pi*f(i)*t); %variable computed with each iteration
sig = component + sig; %ignore this variable
subplot(3,1,1)
plot(t, component, 'color', rand(1,3), 'LineWidth', 2) %variable "component" is plotted with LineWidth = 2
hold on
subplot(3,1,2) %ignore this plot
plot(t,sig, 'LineWidth', 2) %ignore this plot
end
close
clear all
For example, if I already have 4 curves on subplot(3,1,1), each having LineWidth = 0.5 and I press a button, the 5th curve must be added with LineWidth = 2. With the next button press, the 5th curve must change to LineWidth = 0.5 (same as the curves that came before it) and the 6th curve must have LineWidth = 2. This way the most recent curve will stand out.
Any ideas?

回答 (1 件)

Steven Lord
Steven Lord 2020 年 2 月 26 日
Store the handles to the lines (or find the handles to the lines each time with findobj or findall).
set the LineWidth for all the existing lines to 0.5. [For most of the lines this will be a no-op, but that's okay.]
Finally create the new line with LineWidth 2.

カテゴリ

Help Center および File ExchangeLabels and Annotations についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by