Error: Error while evaluating UIControl Callback.
Mostrar comentarios más antiguos
I am getting error :
Undefined function or variable 'SHOWNODES'.
Error while evaluating UIControl Callback
Can someone help me why I am getting this error and how to resolve it?
Also If I change the number of nodes per element from 4 to 8 . Then i am getting
error : Subscript indices must either be real positive integers or logicals.
Error in RectangularPlate22 (line 70)
X(:,iel) = coordinates(nodes(iel,:),1) ;
Help me resolve these two errors.
clc ; clear all ;
% Variables which can be changed
% Dimensions of the plate
L = 0.5 ; % Length of the Plate along X-axes
B = 0.5 ; % Breadth of the Plate along Y-axes
% Number of Elements required
Nx = 20 ; % Number of Elements along X-axes
Ny = 20 ; % Number of Elements along Y-axes
%----------------------------------------
% From here dont change
nel = Nx*Ny ; % Total Number of Elements in the Mesh
nnel = 4 ; % Number of nodes per Element
% Number of points on the Length and Breadth
npx = Nx+1 ;
npy = Ny+1 ;
nnode = npx*npy ; % Total Number of Nodes in the Mesh
% Discretizing the Length and Breadth of the plate
nx = linspace(0,L,npx) ;
ny = linspace(0,B,npy) ;
[xx yy] = meshgrid(nx,ny) ;
% To get the Nodal Connectivity Matrix
coordinates = [xx(:) yy(:)] ;
NodeNo = 1:nnode ;
nodes = zeros(nel,nnel) ;
% If elements along the X-axes and Y-axes are equal
if npx==npy
NodeNo = reshape(NodeNo,npx,npy);
nodes(:,1) = reshape(NodeNo(1:npx-1,1:npy-1),nel,1);
nodes(:,2) = reshape(NodeNo(2:npx,1:npy-1),nel,1);
nodes(:,3) = reshape(NodeNo(2:npx,2:npy),nel,1);
nodes(:,4) = reshape(NodeNo(1:npx-1,2:npy),nel,1);
% If the elements along the axes are different
else%if npx>npy
NodeNo = reshape(NodeNo,npy,npx);
nodes(:,1) = reshape(NodeNo(1:npy-1,1:npx-1),nel,1);
nodes(:,2) = reshape(NodeNo(2:npy,1:npx-1),nel,1);
nodes(:,3) = reshape(NodeNo(2:npy,2:npx),nel,1);
nodes(:,4) = reshape(NodeNo(1:npy-1,2:npx),nel,1);
end
%
% Plotting the Finite Element Mesh
% Initialization of the required matrices
X = zeros(nnel,nel) ;
Y = zeros(nnel,nel) ;
% Extract X,Y coordinates for the (iel)-th element
for iel = 1:nel
X(:,iel) = coordinates(nodes(iel,:),1) ;
Y(:,iel) = coordinates(nodes(iel,:),2) ;
end
% Figure
fh = figure ;
set(fh,'name','Preprocessing for FEA','numbertitle','off','color','w') ;
patch(X,Y,'w')
title('Finite Element Mesh of Plate') ;
axis([0. L*1.01 0. B*1.01])
axis off ;
if L==B
axis equal ;
end
% To display Node Numbers % Element Numbers
pos = [70 20 60 20] ;
ShowNodes = uicontrol('style','toggle','string','nodes','value',0,....
'position',[pos(1) pos(2) pos(3) pos(4)],'background','white','callback',...
'SHOWNODES(ShowNodes,ShowElements,coordinates,X,Y,nnode,nel,nodes)');
pos = get(ShowNodes,'position') ;
pos = [2*pos(1) pos(2) pos(3) pos(4)] ;
ShowElements = uicontrol('style','toggle','string','Elements','value',0,....
'position',[pos(1) pos(2) pos(3) pos(4)],'background','white','callback',....
'SHOWELEMENTS(ShowElements,ShowNodes,coordinates,X,Y,nel,nodes,nnode)');
Respuesta aceptada
Más respuestas (1)
abdallah samaha
el 24 de Sept. de 2019
0 votos
Dear Zainab,
I am interested in your research as I am working on modeling a Matlab code for a forced vibration on a plate. I would be grateful if there's a way that we can contact. my email is abdallah_samaha@hotmail.com. Thanks.
Categorías
Más información sobre Array Geometries and Analysis en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!