Why this code gives error?

6 visualizzazioni (ultimi 30 giorni)
Sadiq Akbar
Sadiq Akbar il 3 Mag 2021
clear all
close all
N=1001;
f1=1.0000e9;
f2=1.0200e9;
fs=4*f1;
w1=2*pi*f1/fs;
w2=2*pi*f2/fs;
n=0:N-1;
s1=sqrt(1.00)*exp(i*w1*n);
s2=sqrt(0.10)*exp(i*w2*n);
wn=sqrt(0.10)*(randn(1,N)+i*randn(1,N));
x=s1+s2+wn;
x=x(:);
f=0:fs/(N-1):fs;
FFT_abs=abs(fft(x));
plot(f,20*log10(FFT_abs/max(FFT_abs)),'linewidth',3,'b+-');
It gives this error:
Error using plot
Data must be a single matrix Y or a list of pairs X,Y.

Risposta accettata

KSSV
KSSV il 3 Mag 2021
Use:
plot(f,20*log10(FFT_abs/max(FFT_abs)),'color','b','linewidth',3);

Più risposte (3)

Stephen23
Stephen23 il 3 Mag 2021
Modificato: Stephen23 il 3 Mag 2021
Exactly as the plot documentation shows, the LineSpec must come directly after the X/Y data:
plot(f,20*log10(FFT_abs/max(FFT_abs)),'b+-','linewidth',3);

Walter Roberson
Walter Roberson il 3 Mag 2021
plot(f,20*log10(FFT_abs/max(FFT_abs)),'b+-','linewidth',3);
Named options must always go after all positional parameters.

Mathieu NOE
Mathieu NOE il 3 Mag 2021
hello
it works better this way :
plot(f,20*log10(FFT_abs/max(FFT_abs)),'b+-','linewidth',3);
  5 Commenti
Sadiq Akbar
Sadiq Akbar il 3 Mag 2021
My hear wants to accept all the answers but I think its not possible. Then logically speaking, first of all KSSV has given me the answer, so definitely he has more right though I used the command of Walter Roberson. However thanks to all of you for your prompt responses.
Walter Roberson
Walter Roberson il 4 Mag 2021
KSSV's solution does not set the line style or the marker.

Accedi per commentare.

Categorie

Scopri di più su MATLAB in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by