MATLAB Answers

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

조회 수: 15(최근 30일)
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'.

  댓글 수: 0

로그인 to comment.

채택된 답변

Stephen Cobeldick
Stephen Cobeldick 8 Jun 2018
편집: Stephen Cobeldick 8 Jun 2018

  댓글 수: 2

Stephen Devlin
Stephen Devlin 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

로그인 to comment.

추가 답변(0개)

이 질문에 답변하려면 로그인을(를) 수행하십시오.


Translated by