function varargout = CircuitPanel01(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @CircuitPanel01_OpeningFcn, ...
'gui_OutputFcn', @CircuitPanel01_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function CircuitPanel01_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
set(handles.edit1,'string',1);
set(handles.edit2,'string',0);
set(handles.edit3,'string',0);
set(handles.edit4,'string',1);
set(handles.edit5,'string',0);
set(handles.edit6,'string',1);
set(handles.edit7,'string',0);
set(handles.edit8,'string','');
set(handles.pushbutton1,'string','Gen');
set(handles.pushbutton2,'string','Select');
set(handles.pushbutton3,'string','CaculateResult');
set(handles.uipanel1,'title','Componet');
set(handles.text1,'string','NULL');
set(handles.text2,'string','NULL');
set(handles.radiobutton1,'string','Null or Open');
set(handles.radiobutton2,'string','Resistor');
set(handles.radiobutton3,'string','Capacitor');
set(handles.radiobutton4,'string','Inductance');
set(handles.radiobutton5,'string','Voltage Source');
handles.mydata =[];
handles.selectradiobutton='radiobutton1';
handles.Dim=1;
set(handles.edit8,'min',1);
set(handles.edit8,'max',3);
guidata(hObject, handles);
function varargout = CircuitPanel01_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function edit1_Callback(hObject, eventdata, handles)
function edit1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function pushbutton1_Callback(hObject, eventdata, handles)
n = str2num (get(handles.edit1,'string'));
if n<=0
return
end
set(handles.edit8,'max',n+1);
Data = cell(n,n);
for i=1:n
for j=1:n
if (i==j)
Data{i,j}='-';
else
Data{i,j}='��';
end
end
end
RealData = cell(n,n);
for i=1:n
for j=1:n
RealData{i,j}.showvalue = Data{i,j};
RealData{i,j}.type = 'o';
RealData{i,j}.typevalue1 = 0;
RealData{i,j}.typevalue2 = 0;
end
end
%updated
handles.Dim = n;
handles.mydata = RealData;
guidata(hObject, handles);
set(handles.uitable1,'data',Data);
columnname =cell(1,n);
rowname =cell(1,n);
for i=1:n
columnname{i} = ['Point',num2str(i)];
rowname{i} = ['Point',num2str(i)];
end
set(handles.uitable1,'columnname',columnname);
set(handles.uitable1,'rowname',rowname);
set(handles.uitable1,'columneditable',true);
function edit2_Callback(hObject, eventdata, handles)
function edit2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit3_Callback(hObject, eventdata, handles)
function edit3_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit4_Callback(hObject, eventdata, handles)
function edit4_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit5_Callback(hObject, eventdata, handles)
function edit5_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit6_Callback(hObject, eventdata, handles)
function edit6_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function pushbutton3_Callback(hObject, eventdata, handles)
global result
RealData = handles.mydata;
n=handles.Dim;
Array = zeros(n,n);
Type = cell(n,n);
for i=1:n
for k=1:n
tempdata = RealData{i,k}.type;
Type{i,k}= tempdata;
switch tempdata
case 'o'
Array(i,k)=realmax;
case 'r'
Array(i,k)=RealData{i,k}.typevalue1;
case 'c'
Array(i,k)=-j/( RealData{i,k}.typevalue1 *RealData{i,k}.typevalue2 );
case 'l'
Array(i,k)=j * RealData{i,k}.typevalue1 *RealData{i,k}.typevalue2 ;
case 's'
Array(i,k)= RealData{i,k}.typevalue1;
Array(k,i)= -RealData{i,k}.typevalue1;
end
end
end
result = NodeVoltageAnalysisFun(Array,Type,n);
set(handles.edit8,'string',result);
function edit7_Callback(hObject, eventdata, handles)
function edit7_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function pushbutton2_Callback(hObject, eventdata, handles)
c1 = get(handles.text1,'string');
c2 = get(handles.text2,'string');
if strcmp(c1,'NULL')||(strcmp(c2,'NULL'))
return
end
i = str2num(c1);
j = str2num(c2);
if (i==j)
msgbox('Warning','Can not input');
return
end
radiobuttonx = handles.selectradiobutton ;
n = handles.Dim;
RealData = handles.mydata;
switch radiobuttonx
case 'radiobutton1'
RealData{i,j}.showvalue = '��';
RealData{i,j}.type = 'o';
RealData{i,j}.typevalue1 = 0;
RealData{i,j}.typevalue2 = 0;
case 'radiobutton2'
value1 = get(handles.edit2,'string');
RealData{i,j}.showvalue = value1;
RealData{i,j}.type = 'r';
RealData{i,j}.typevalue1 = str2num(value1);
RealData{i,j}.typevalue2 = 0;
case 'radiobutton3'
value1 = get(handles.edit3,'string');
value2 = get(handles.edit4,'string');
RealData{i,j}.showvalue = ['1/(j*',value1,'*',value2,')'];
RealData{i,j}.type = 'c';
RealData{i,j}.typevalue1 = str2num(value1);
RealData{i,j}.typevalue2 = str2num(value2);
case 'radiobutton4'
value1 = get(handles.edit5,'string');
value2 = get(handles.edit6,'string');
RealData{i,j}.showvalue = ['j*',value1,'*',value2];
RealData{i,j}.type = 'l';
RealData{i,j}.typevalue1 = str2num(value1);
RealData{i,j}.typevalue2 = str2num(value2);
case 'radiobutton5'
value1 = get(handles.edit7,'string');
RealData{i,j}.showvalue = value1;
RealData{i,j}.type = 's';
RealData{i,j}.typevalue1 = str2num(value1);
RealData{i,j}.typevalue2 = 0;
end
RealData{j,i}.showvalue = RealData{i,j}.showvalue;
RealData{j,i}.type = RealData{i,j}.type ;
RealData{j,i}.typevalue1= RealData{i,j}.typevalue1;
RealData{j,i}.typevalue2= RealData{i,j}.typevalue2;
if strcmp (radiobuttonx,'radiobutton5' )==1
RealData{j,i}.showvalue = num2str(-RealData{i,j}.typevalue1);
RealData{j,i}.type = RealData{i,j}.type ;
RealData{j,i}.typevalue1= -RealData{i,j}.typevalue1;
RealData{j,i}.typevalue2= -RealData{i,j}.typevalue2;
end
%updated
handles.mydata = RealData;
guidata(hObject, handles);
for i=1:n
for j=1:n
Data{i,j} = RealData{i,j}.showvalue;
end
end
set(handles.uitable1,'data',Data);
function edit8_Callback(hObject, eventdata, handles)
function edit8_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function uitable1_CellSelectionCallback(hObject, eventdata, handles)
RealData
评论1