Why this code gives error?

3 vues (au cours des 30 derniers jours)
Sadiq Akbar
Sadiq Akbar le 3 Mai 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.

Réponse acceptée

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

Plus de réponses (3)

Stephen23
Stephen23 le 3 Mai 2021
Modifié(e) : Stephen23 le 3 Mai 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 le 3 Mai 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 le 3 Mai 2021
hello
it works better this way :
plot(f,20*log10(FFT_abs/max(FFT_abs)),'b+-','linewidth',3);
  5 commentaires
Sadiq Akbar
Sadiq Akbar le 3 Mai 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 le 4 Mai 2021
KSSV's solution does not set the line style or the marker.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by