getting errors in running this.

1 view (last 30 days)
Chaudhary P Patel
Chaudhary P Patel on 21 Jan 2020
Commented: Chaudhary P Patel on 21 Jan 2020
dmp = M.data.damping;
c=damp(:,:);
Dot indexing is not supported for variables of this type.
Error in Untitled (line 13)
dmp = M.data.damping; %% damping matrix of the structure
  2 Comments
Chaudhary P Patel
Chaudhary P Patel on 21 Jan 2020
Edited: Guillaume on 21 Jan 2020
%%% this is my code initiation part%%%%%%%%%
inpf=input('File name of input file data ','s');
M=importdata([inpf,'.xlsx']);
%Table of nodes and coordinates of column
nod=M.data.Node;
nj=max(nod(:,1));% No. of joints or nodes
%Table of elments of column core and beam
elem=M.data.Element; %Elelment data for Column
ne=max(elem(:,1)); %No. of elements
stif=M.data.Stiffness; %% stiffness matrix of the structure
K=stif(:,:);
mas=M.data.Mass; % mass matrix of the structure
M=mas(:,:);
dmp = M.data.damping; %% damping matrix of the structure
C=dmp(:,:);

Sign in to comment.

Answers (1)

Guillaume
Guillaume on 21 Jan 2020
I would recommend you use readtable instead of importdata. importdata may not return what you expected if the file format change. However, it is not the problem here.
M.data is indeed a structure ... until you stomp on it and replace it with a matrix:
M=mas(:,:);
From this point onward, you've replaced the original M so of course, M.data.damping no longer work.
Morale of the story: Use better variable names, ones that are not ambiguous, so you know what they actually contain. I would recommend using complete words with no abbreviation, e.g. importeddata instead of M, mass instead of the other M, stiffness, damping, etc.
Also note, that
X = Y(:, :);
when Y is a 2D matrix is just a more complicated and confusing way of writing:
X = Y;

Categories

Find more on Interpolation in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!