Why is 'print' creating a csv file?
1 次查看(过去 30 天)
显示 更早的评论
I'm trying to save a plot as a high dpi png, however, matlab keeps svaing the output as a csv. Why is this? My code is as follows:
% Plots spectrum from E4407B Spectrum Analyser
filetoopen = '400kbps_10db_0,096k_spectrum.CSV';
% Workings
close all;
datafromfile = csvread(filetoopen, 15, 0);
freq = datafromfile(:,1);
power = datafromfile(:,2);
axisMHz = freq .* 0.000001;
filenamecomma = regexprep(filetoopen, '_', ' ');
filename = regexprep(filenamecomma, ',', '.');
expression = '(^|[\. ])\s*.';
replace = '${upper($0)}';
filename = regexprep(filename,expression,replace);
filename = newStr(1:end-4);
figure(1);
plot(axisMHz, power);
xlabel('Frequency (MHz)');
ylabel('Power (dBm)');
title(newStr);
print(gcf, filenamecomma, '-dpng', '-r300');
I've also included an example data file. Thanks in advance.
0 个评论
采纳的回答
Star Strider
2020-2-26
Perhaps because you’re telling it to?
Running these lines:
filetoopen = '400kbps_10db_0,096k_spectrum.CSV';
filenamecomma = regexprep(filetoopen, '_', ' ')
produces:
filenamecomma =
'400kbps 10db 0,096k spectrum.CSV'
which is what print is saving to:
print(gcf, filenamecomma, '-dpng', '-r300');
Mystery solved!
2 个评论
Star Strider
2020-2-26
As always, my pleasure!
This is likely easier and more robust:
filetoopen = '400kbps_10db_0,096k_spectrum.CSV';
[~,filenamecommatosave,~] = fileparts(filetoopen);
producing:
filenamecommatosave =
'400kbps_10db_0,096k_spectrum'
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!