How to access a table using the string from within a cell as part of the dot notation index

25 views (last 30 days)
Hi, I have thousands of textiles that over the years have been formatted differently, for example velocity data may be in column2 in one file but in column 5 in another. I have some code that finds which column velocity is in, and then I want my script to access that column of the table, but I'm falling over with the last part where I use dot notation consisting of the table name and the columnID which I derived from the code, any ideas?
close all
clear all
clc
A={'Exp ID','drop1: Average Radius',...
'drop1 volume (pl)','trajectory','velocity (m/s)',...
'average velocity (m/s)','Comments', 'Time'};
possibleVolStr={'Volume_pl','volume_pl','drop1 volume (pl)',...
'drop1 Volume (pl)','Volume'}
VolOuty = ismember(A,possibleVolStr)
[~,VolColID] = find(VolOuty)
VolCol_header={A(VolOuty)}
VolCol_header_title=['A' num2str(VolColID)]
dataNew=cell2table(A)
Z={VolCol_header_title}
Z=convertCharsToStrings(Z)
vol=dataNew.Z
%VolColID tells us which column is the volume
The error is: >> Error using column_moving_05 (line 45) Unrecognized variable name 'Z'.

Accepted Answer

Stephen23
Stephen23 on 8 Jun 2018
Edited: Stephen23 on 8 Jun 2018
  2 Comments
Stephen Devlin
Stephen Devlin on 8 Jun 2018
I get this when I run it steve
Error using untitled434 (line 26) Table variable names must be character vectors.
I have figured out I can do it with vol=datanew(:,VolColID) but I was puzzled as to why I couldn't do it with dot notation which is what I usually use for table indexing

Sign in to comment.

More Answers (0)

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!