Please help me fix my code!
Show older comments
Hi Everyone,
I want to be able to refer to the information of my edit box (called edit_x) throughout my GUI's m file. My code is quite complicated. The idea is that whatever the user enters into the edit box is compared with the already loaded .mat files listed in the listbox (called listbox_x), and only those whose first n letters match those of the characters enterred by the user into the edit box will remain in the list box.
However, every time I try it out, it tells me that my edit_x is undefined.
If anyone could give me any guidance on this I would be extremely grateful.
Thanks,
Rosie
For reference, and to identify if I've done anything else wrong that's caused this error, I'll post my code below;
% --------------------------------------------------------------------
function varargout = listbox_x_CreateFcn(h, eventdata, handles, varargin)
D = dir('*.mat'); %Scan directory for .mat files
listbox_x_string = {D(:).name}; %Set to display full name of files found
set(h,'String',listbox_x_string); %Display list of files in ListBox_x
guidata(gcbo,handles)
% --------------------------------------------------------------------
function varargout = edit_x_Callback(h, eventdata, handles, varargin)
edit_x_string = varargin{1};
handles.edit_x_string = edit_x_string;
guidata(gcbo,handles)
% --------------------------------------------------------------------
function varargout = listbox_x_Callback(h, eventdata, handles, varargin)
listbox_x_oldstr = get(h,'String');
n = length(edit_x_string);
match_x = strncmpi(handles.edit_x_string,listbox_x_oldstr,n);
if n >= 1
if match_x == 0
set(h,'String',' ');
elseif match_x >= 1
set(h,'String',listbox_x_oldstr(match_x));
end
end
guidata(gcbo,handles)
Accepted Answer
More Answers (1)
DEWDROP
on 13 Mar 2020
0 votes
PLEASE HELP TO FIX LINE mdl .
clear
D =[8.3, 4.76, 4.79, 4.24, 3.69]; %m^2/s
t =[91, 180, 365, 730, 1095]; %days
Dref =D(1);%m^2/s
tref =t(1); %days
x=log((tref./t));
y=log((D./Dref));
mdl= fitlm(x,y,'y~x1-1');%linear regression formula
figure(1)
plot(mdl)
xlabel('ln(t_ref/t)')
ylabel('ln(D/D_ref)')
title('m calculation')
grid on
m = table2array(mdl.coefficients(1,1));
time=linspace (0,100,10000)
for i=1:length(time)
Dt(i,1)=Dref/(1-m).*(tref/365/time(i)).^m;
ke=1;
kt=1;
At(i,1)=(tref/365./time(i)).^m;
Dappc(i,1)=ke*Dref*kt*At(i,1);
end
figure(2)
ACI=loglog(time,Dt*365*24*60*60,'r','linewidth',2)
fib=loglog(time,Dappc*365*24*60*60,'m','linewidth',2)
xlabel('time,year')
ylabel ('diffusion coefficient,m^2/s')
ylim([10^-5,10^-2])
Categories
Find more on Data Type Identification in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!