Trouble with for-loop and fft

4 vues (au cours des 30 derniers jours)
shawn finley
shawn finley le 13 Août 2021
Commenté : shawn finley le 16 Août 2021
So the error I get in my code i am not understanding see attached code and error

Réponse acceptée

Dave B
Dave B le 13 Août 2021
On line 33 of 'U296' you have the line
xdft=fft(signal.x_0_003{k},n)/L;
inside the fft you see:
signal.x_0_003{k}
but signal.x_0_003 is not a cell (or other type that supports {}).
What is class(signal.x_0_003)? Did you mean to use () instead of {}?
  3 commentaires
Dave B
Dave B le 16 Août 2021
signal is a table
signal.x_0_003 is a variable in that table, my guess is that it contains a vector of values. You cannot use {} to index into this. I don't see how k would provide a time window here, but it's a little hard to say without knowing more about the structure of your table.
Here are some examples with table indexing that might help:
x=(10:10:100)';
t=table(x)
t = 10×1 table
x ___ 10 20 30 40 50 60 70 80 90 100
k=3;
t.x(3)
ans = 30
t.x(k:k+5)
ans = 6×1
30 40 50 60 70 80
x2 = {1:5;5:10:30;1:3:12};
t=table(x2)
t = 3×1 table
x2 _____________ {[1 2 3 4 5]} {[ 5 15 25]} {[ 1 4 7 10]}
t.x2{2}
ans = 1×3
5 15 25
shawn finley
shawn finley le 16 Août 2021
thanks for the clairifacation on the indexing

Connectez-vous pour commenter.

Plus de réponses (1)

dpb
dpb le 13 Août 2021
What's the purpose of the loop over k?
You have the time history apparently as variable x_0_003 in the table which one presumes will be the third column.
If you want the FFT() of it, just write
xdft=fft(signal.x_0_003,n)/L;
There doesn't seem any point in the for...end loop at all.
NOTA BENE:
There's also no need to create copies of the table data into local variables time and volts; use the table variables directly. You could fix up the names in the table to be more meaningful either on input or later --
signal.Properties.VariableNames(2:3)={'Time','Volts'};
and then use
plot(signal.Time,signal.Volts)
  2 commentaires
shawn finley
shawn finley le 16 Août 2021
The purpose of the for-loop is to analise the frequency that the fft generates over time.
I will look at using teh signal.Properties.VariablesNames code, but if it uses the signal tool box I don't have that.
shawn finley
shawn finley le 16 Août 2021
Just to be clear I do not have the Signal Processing Toolbox, sorry and Thanks.

Connectez-vous pour commenter.

Produits


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by