How do I plot different array smoothly which contain NaN in same figure

Plot 4 arrays all of them contain NaN value. How do you plot it smoothly.
Here is the code:
lw=2
plot(Sig1,'LineWidth',lw,'Color',[1 0.76 0])
hold on
plot(Sig2,'r','LineWidth',lw)
hold on
plot(Sig3,'g','LineWidth',lw)
hold on
plot(Sig4,'b','LineWidth',lw)
hold off

Risposte (1)

One option is to use the fillmissing function.
Example —
sig1 = [rand(1,10) NaN];
sig2 = [rand(1,10) NaN];
sig3 = [rand(1,10) NaN NaN];
sig4 = [rand(1,10) NaN];
sigv = [sig1 sig2 sig3 sig4];
sigvfm = fillmissing(sigv, 'linear');
figure
plot(sigv, 'b', 'LineWidth',1.5)
hold on
plot(sigvfm,'r')
hold off.
Make appropriate changes to work with your data.
.

6 Commenti

Strider, Here i attached the 4 arrays .
Try this:
D = load('sig.mat');
Sig1 = D.Sig1;
Sig2 = D.Sig2;
Sig3 = D.Sig3;
Sig4 = D.Sig4;
Sig = [Sig1,Sig2,Sig3,Sig4];
Sigfm = fillmissing(Sig, 'linear', 'EndValues','nearest');
figure
subplot(2,1,1)
plot(Sig, 'LineWidth',1)
subplot(2,1,2)
plot(Sigfm, 'LineWidth',1)
producing:
There are a number of options that specify how fillmissing should work. Explore that documentaiton to see what works best for you.
Strider, This isn't what i want. Probably you didn't see my attached file. Each color represents a different array.
Much of this is ambiguous.
Try this:
D = load('sig.mat');
Sig1 = D.Sig1;
Sig2 = D.Sig2;
Sig3 = D.Sig3;
Sig4 = D.Sig4;
Sig = [Sig1;Sig2;Sig3;Sig4]; % Concatenate
Sigfm = fillmissing(Sig, 'linear', 'EndValues','nearest'); % Fill NaN Values
figure
plot(Sigfm(1,:), 'k', 'LineWidth',1)
producing:
.
My pleasure!
If my Answer helped you solve your problem, please Accept it!
.

Accedi per commentare.

Categorie

Prodotti

Release

R2020a

Commentato:

il 8 Giu 2022

Community Treasure Hunt

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

Start Hunting!

Translated by