Trouble with for-loop and fft
1 次查看(过去 30 天)
显示 更早的评论
So the error I get in my code i am not understanding see attached code and error
0 个评论
采纳的回答
Dave B
2021-8-13
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 个评论
Dave B
2021-8-16
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)
k=3;
t.x(3)
t.x(k:k+5)
x2 = {1:5;5:10:30;1:3:12};
t=table(x2)
t.x2{2}
更多回答(1 个)
dpb
2021-8-13
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)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Fourier Analysis and Filtering 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!