loop over variable with different characters

3 visualizzazioni (ultimi 30 giorni)
Hi,
I wonder if someone cna help me with my problem and that is if I have lets say 4 variables in my workspace with different
characters in the begnning end ends with the same words, for example:
abcd_hpcd_Df
defg_hpcd_Df
hijk_hpcd_Df
lmno_hpcd_Df
I want to write it in matlab in a easier way, just write hpcd_Df and not the characters in the beginning.
  5 Commenti
Serhat Unal
Serhat Unal il 29 Set 2022
I want to call them and insert them into a table as a column with these variables. The thing is
that each of the variables is among 100 other variables and I dont know what words they begin with
and to look visually and find each is a very time consuming. Therefore when I clean the workspace and insert
new 100 variables I want to write like_hpcd_Df to find the corresponding variable.

Accedi per commentare.

Risposta accettata

Jan
Jan il 29 Set 2022
This shows, that you have created a bunch of variables and stored important information in the name of the variables. This design is a typical DON'T in programming.
But is you do not want to re-design the code from scratch, this might help:
clear variables
abcd_hpcd_Df = 1;
defg_hpcd_Df = 1;
hijk_hpcd_Df = 1;
lmno_hpcd_Df = 1;
abcde = 2;
VarList = whos;
NameList = {VarList.name};
NameList(endsWith(NameList, '_hpcd_Df'))
ans = 1×4 cell array
{'abcd_hpcd_Df'} {'defg_hpcd_Df'} {'hijk_hpcd_Df'} {'lmno_hpcd_Df'}
  4 Commenti
Serhat Unal
Serhat Unal il 2 Ott 2022
This is the exact answer to my question. Thanks alot!
Stephen23
Stephen23 il 2 Ott 2022
abcd_hpcd_Df = 1;
defg_hpcd_Df = 1;
hijk_hpcd_Df = 1;
lmno_hpcd_Df = 1;
abcde = 2;
save('mydata.mat','-regexp','_hpcd_Df$')
S = load('mydata.mat')
S = struct with fields:
abcd_hpcd_Df: 1 defg_hpcd_Df: 1 hijk_hpcd_Df: 1 lmno_hpcd_Df: 1

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