Info
This question is closed. Reopen it to edit or answer.
How to use correctly a string from a variable into a for loop??
1 view (last 30 days)
Show older comments
Hi all,
Firstly thank you for your time!
I'm working in a matlab script for data analysis and plotting from a csv file. I'm trying to use a variable name into a for loop to get the data on a specific table column but I can't get it right...
A simplified version of my code is:
CSV_Import=readtable('Data.csv');
Ch_sLap ='distancelap';
Channels={'Ch_sLap'}
sLap = CSV_Import.(Ch_sLap);
for i=1:length(Channels)
if exist(char(Channels(i)))
char(Channels(i)) = CSV_Import.((fprintf('%s\n', Channels{i})));
end
end
What I want to do is:
- Import a csv file with some data arranged in columns with headers into a table
- Find the column which is named "distancelap" on that table
- That column header (distancelap) is coming from an array of strings that I've created previously
- Then, if I find the column using this: sLap = CSV_Import.(Ch_sLap); is working fine
- But instead of that, if I use the for loop (In case I had a long Channels array) I can't make it to work because it takes "Ch_sLap" instead of its value which is "distancelap"
I can do it without the loop and just put one by one all the variables of the Channels array but I don't like it at all...
What do you think???
Thank you!!
5 Comments
Answers (1)
Rajani Mishra
on 27 May 2020
By writing below mentioned code you are creating a string variable with value as 'Ch_sLap' and storing in cell array Channels. Hence, it takes column name as 'Ch_sLap'.
Channels={'Ch_sLap'}
I created a table mentioned in the first example on this page and tried your code. I changed "Channels" array into the following way (variable 'Ch_sLap' has value 'Age') :
Channels={Ch_sLap}
for i=1:length(Channels)
myTable.(Channels{i})
end
Above code was able to print values present in 'Age' column.
0 Comments
This question is closed.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!