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

4 visualizzazioni (ultimi 30 giorni)
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'.

Risposta accettata

Stephen23
Stephen23 il 8 Giu 2018
Modificato: Stephen23 il 8 Giu 2018
  2 Commenti
Stephen Devlin
Stephen Devlin il 8 Giu 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
Stephen23
Stephen23 il 8 Giu 2018
Modificato: Stephen23 il 8 Giu 2018
Simplify your code: get rid of the convertCharsToStrings and find.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by