My problem is identical with the question in this question on this forum.
I've tried to implement the accepted solution, but it does not work. The variable Dc is empty, and the resulting plot is an empty plot with the axes shown. I've tried to read the documentation for fopen and textscan, but cannot find an answer to what I might be doing wrong.
I use the R2020a version, so I should be up to date.
filename = 'RVDT_feedback_filter_V1.txt';
fidi = fopen(filename, 'rt');
Dc = textscan(fidi, '%f(%fdB,%f°)', 'CollectOutput',1);
D = cell2mat(Dc);
figure
subplot(2,1,1)
semilogx(D(:,1), D(:,2))
title('Amplitude (dB)')
grid
subplot(2,1,2)
semilogx(D(:,1), D(:,3))
title('Phase (°)')
grid
xlabel('Frequency')

 採用された回答

Star Strider
Star Strider 2021 年 10 月 4 日

0 投票

This is not the most elegant or efficient way to read and plot this, however it has the advantage of working, so I’m using it —
T1 = readtable('https://www.mathworks.com/matlabcentral/answers/uploaded_files/757614/RVDT_feedback_filter_V1.txt', 'VariableNamingRule','preserve')
T1 = 4001×2 table
Freq. V(n002) ______ ______________________________________________________ 10 {'(-6.10503986437257e+001dB,-9.00345432737350e+001°)'} 10.023 {'(-6.10303738458341e+001dB,-9.00346229875252e+001°)'} 10.046 {'(-6.10103489334093e+001dB,-9.00347028856527e+001°)'} 10.069 {'(-6.09903239059221e+001dB,-9.00347829685466e+001°)'} 10.093 {'(-6.09702987628407e+001dB,-9.00348632366365e+001°)'} 10.116 {'(-6.09502735036309e+001dB,-9.00349436903537e+001°)'} 10.139 {'(-6.09302481277559e+001dB,-9.00350243301301e+001°)'} 10.162 {'(-6.09102226346766e+001dB,-9.00351051563988e+001°)'} 10.186 {'(-6.08901970238513e+001dB,-9.00351861695938e+001°)'} 10.209 {'(-6.08701712947358e+001dB,-9.00352673701502e+001°)'} 10.233 {'(-6.08501454467833e+001dB,-9.00353487585042e+001°)'} 10.257 {'(-6.08301194794448e+001dB,-9.00354303350928e+001°)'} 10.28 {'(-6.08100933921683e+001dB,-9.00355121003543e+001°)'} 10.304 {'(-6.07900671843995e+001dB,-9.00355940547280e+001°)'} 10.328 {'(-6.07700408555816e+001dB,-9.00356761986540e+001°)'} 10.351 {'(-6.07500144051551e+001dB,-9.00357585325738e+001°)'}
Vn002 = T1.('V(n002)');
for k = 1:numel(Vn002)
V(:,k) = sscanf(Vn002{k}, '(%fdB,%f)');
end
figure
subplot(2,1,1)
semilogx(T1.('Freq.'), V(1,:))
grid
ylabel('Magnitude (dB)')
subplot(2,1,2)
semilogx(T1.('Freq.'), V(2,:))
grid
xlabel('Frequency (Hz)')
ylabel('Phase (°)')
sgtitle('V(n002)')
Experiment to get different results.
.

その他の回答 (0 件)

カテゴリ

製品

リリース

R2020a

質問済み:

2021 年 10 月 4 日

回答済み:

2021 年 10 月 4 日

Community Treasure Hunt

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

Start Hunting!

Translated by