Plot data import from excel to figure use GUI ?
6 ビュー (過去 30 日間)
古いコメントを表示
Hello everyone!
I'm a beginer. and i want to study on GUI.
Now, i want to build a GUI such as: (see picture)
First, i want to click on "Import" button to import data from a excel file. And, i choise plot my data in "linear" or "dB", (1 dB = 20*log(x)), x is input data.
And, after i decided data in Y axes (vertical axes) is linear or dB depend on i click on "linear" or "Log". i will click on "draw" button to draw my data.
I wrote a code, but, it didn't run.
Please help me!
Thank you so much
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/199262/image.png)
This is my code: (i only show Callback functions)
function import_Callback(hObject, eventdata, handles)
handles.fileName = uigetfile('*.xlsx'); % imput mot file Excel
guidata(hObject,handles);
function draw_Callback(hObject, eventdata, handles)
filename = get(handles.import,'String');
values = xlsread(filename);
xCol = values(:,1);
yCol = values(:,2);
set(handles.truc,'Visible','on');
plot(handles.truc,xCol,yCol)
function linear_Callback(hObject, eventdata, handles)
set(handles.truc,'Scale','Linear');
function log_Callback(hObject, eventdata, handles)
set(handles.truc,'Scale','Log');
4 件のコメント
Luna
2018 年 12 月 17 日
Are you sure on that line values = xlsread(filename); filename is the full file name with its path like: 'C:\users\....\example1.xls' ?
採用された回答
Geoff Hayes
2018 年 12 月 17 日
The problem may be with this code
function draw_Callback(hObject, eventdata, handles)
filename = get(handles.import,'String');
values = xlsread(filename);
xCol = values(:,1);
yCol = values(:,2);
set(handles.truc,'Visible','on');
plot(handles.truc,xCol,yCol)
Is handles.import the handle to your Import button? And so when you read the string (from it) you are then trying to open a file named "Import"? The import_Callback saves the name of the file to handles.fileName so your above code should be
function draw_Callback(hObject, eventdata, handles)
if isfield(handles, 'fileName')
filename = get(handles.fileName);
values = xlsread(filename);
xCol = values(:,1);
yCol = values(:,2);
set(handles.truc,'Visible','on');
plot(handles.truc,xCol,yCol)
end
As Luna has indicated, make sure that handles.filename includes the full path to your file. You may need to change the import callback code to
[file, path] = uigetfile('*.xlsx');
handles.fileName = fullfile(file, path);
guidata(hObject,handles);
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Spreadsheets についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!