Is it possible to extract and store data to uitable in GUI

Is it possible to extract a set of data from an equation and store it in a uitable?
I want to extract the output data from an equation to a uitable and then later on export it to excel. Not sure if the first part is possible.
My code that I'm trying to extract data:
C_0 = str2double(get(handles.Input_C_0,'String'));
v = str2double(get(handles.Input_v,'String'));
t = str2double(get(handles.Input_t,'String'));
D = str2double(get(handles.Input_D,'String'));
R = str2double(get(handles.Input_R,'String'));
t_half = str2double(get(handles.Input_t_half,'String'));
X1 = str2double(get(handles.Input_X1,'String'));
X2 = str2double(get(handles.Input_X2,'String')); %%%all user inputs
x = X1:0.1:X2;
lambda = (0.69314718)./t_half;
beta = sqrt((v./(2.*D)).^2+(lambda.*R)./D);
subA = (x-t.*sqrt((v./R).^2+(4.*lambda.*D)./R))./2.*sqrt((D.*t)./R);
subB = (x+t.*sqrt((v./R).^2+(4.*lambda.*D)./R))./2.*sqrt((D.*t)./R);
C1 = (1./2).*exp((v.*x)./(2.*D)).*(exp(-beta.*x).*erfc(subA)+exp(beta.*x).*erfc(subB)); %%%equation with sub equations
C = C1./C_0;
plot(x,(C));
C will generate a graph with values for each x, I wonder if I can put it in a uitable

2 件のコメント

Oleg Komarov
Oleg Komarov 2011 年 9 月 27 日
Which equation. Please post an example in formatted code.
Bastion
Bastion 2011 年 9 月 27 日
There's my code

サインインしてコメントする。

 採用された回答

Walter Roberson
Walter Roberson 2011 年 9 月 27 日

0 投票

xlswrite('YourFile.xls', [x(:),C(:)])

5 件のコメント

Bastion
Bastion 2011 年 9 月 27 日
That's to export it to a Excel file right?
I'm thinking of extracting the data first to a uitable within my MATLAB GUI program before doing that.
Walter Roberson
Walter Roberson 2011 年 9 月 27 日
data = num2cell([x(:),C(:)]);
set(UiTableHandle, 'Data', data);
stored_data = get(UiTableHandle, 'Data');
xlswrite('YourFile.xls', stored_data);
Note: This form of xlswrite, passing in a cell, requires that you be using MS Windows and have Excel installed on your system. If you are on any other OS or do not have Excel installed, then you would need to use
xlswrite('YourFile.xls', cell2mat(stored_data));
Bastion
Bastion 2011 年 9 月 28 日
Hey thanx for the reply!
I tried adding it to my code for another button, but somehow it isn't working...
---------------------------
guidata(hObject, handles);
handles.output = hObject;
C_0 = str2double(get(handles.Input_C_0,'String'));
v = str2double(get(handles.Input_v,'String'));
t = str2double(get(handles.Input_t,'String'));
D = str2double(get(handles.Input_D,'String'));
R = str2double(get(handles.Input_R,'String'));
t_half = str2double(get(handles.Input_t_half,'String'));
X1 = str2double(get(handles.Input_X1,'String'));
X2 = str2double(get(handles.Input_X2,'String'));
x = X1:0.1:X2;
lambda = (0.69314718)./t_half;
beta = sqrt((v./(2.*D)).^2+(lambda.*R)./D);
subA = (x-t.*sqrt((v./R).^2+(4.*lambda.*D)./R))./2.*sqrt((D.*t)./R);
subB = (x+t.*sqrt((v./R).^2+(4.*lambda.*D)./R))./2.*sqrt((D.*t)./R);
C1 = (1./2).*exp((v.*x)./(2.*D)).*(exp(-beta.*x).*erfc(subA)+exp(beta.*x).*erfc(subB)); %%% equation with sub equations
C = C1./C_0;
data = num2cell([x(:),C(:)]);
set(DATA_TABLE, 'Data', data); %%% uitable is tagged DATA_TABLE
--------------------------------
Walter Roberson
Walter Roberson 2011 年 9 月 28 日
If the uitable is tagged DATA_TABLE, then
UiTableHandle = findobj(0,'Tag','DATA_TABLE');
set(UiTableHandle,,'Data', data);
Bastion
Bastion 2011 年 9 月 29 日
Sweet, it works and the Excel is in the Matlab directory, thanx for the help.

サインインしてコメントする。

その他の回答 (0 件)

製品

Community Treasure Hunt

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

Start Hunting!

Translated by