I'd like to use the multiselect to open more than one file, then plot them, but I don't know how to approach it. I'd really appreciate if anyone could help me. Thanks alot!
Open selected csv file and plot
4 views (last 30 days)
Show older comments
Hi everyone, I have excel file with many spreadsheets; I convert them into csv file. My problem I have now is I want to open the csv file using uigetfile, and plot that file. However, I don't know how to plot it since different file has different data size. Can anyone help me with that? Thanks alot.
Accepted Answer
Image Analyst
on 14 Mar 2018
Try this:
% Have user browse for a file, from a specified "starting folder."
% For convenience in browsing, set a starting folder from which to browse.
startingFolder = pwd; % or 'C:\wherever';
if ~exist(startingFolder, 'dir')
% If that folder doesn't exist, just start in the current folder.
startingFolder = pwd;
end
% Get the name of the file that the user wants to use.
defaultFileName = fullfile(startingFolder, '*.*');
[baseFileName, folder] = uigetfile(defaultFileName, 'Select a file');
if baseFileName == 0
% User clicked the Cancel button.
return;
end
fullFileName = fullfile(folder, baseFileName)
data = csvread(fullFileName);
x = data(:, 1); % Or wherever
y = data(:, 2);
plot(x, y, 'b*-', 'LineWidth', 2);
grid on;
title('Y vs. X', 'FontSize', 20);
xlabel('X', 'FontSize', 20);
ylabel('Y', 'FontSize', 20);
7 Comments
per isakson
on 16 Mar 2018
Edited: per isakson
on 16 Mar 2018
>> m=dlmread( 'Book3.csv', ',', 1,0);
works fine, but
>> m=dlmread( 'Book3.csv', ',', 0,0);
Error using dlmread (line 147)
Mismatch between file and format string.
Trouble reading 'Numeric' field from file (row number 1, field number 1) ==>
numberone,numbertwo,numberthree,numberfour\n
You must chose values of r and c that doesn't include the header.
More Answers (0)
See Also
Categories
Find more on Spreadsheets in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!