Error: Error while evaluating UIControl Callback.
Afficher commentaires plus anciens
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)');
Réponse acceptée
Plus de réponses (1)
abdallah samaha
le 24 Sep 2019
0 votes
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.
Catégories
En savoir plus sur Array Geometries and Analysis dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!