Searching structure that has all caps field names with list that varies in case.
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hello,
I am comparing two separate files of data and have loaded the .mat files into structs. One file has field names that are in all capital letters. Ideally I just want to ignore the case altogether. Hpwever, I am unsure how to do this and so I have tried using:
x = upper(load('filename.mat'))
%and
x= load('filename.mat')
y=upper(x)
To change all the fields to uppercase. Niether of these work. ( I also changed the search variables to match case for this)
My code looks like this:
myVars = {'Abc_B', 'Aaa_A', 'B_Ahh', 'Ba_Bcc', 'Dea_C_CC' };
b_struct = load('filename1.mat'); %all upper case
f_struct = load('filename2.mat'); %variable case
for iVar=1:numel(myVars)
f_sp = f_struct.(myVars{iVar});
b_sp = b_struct.dArray.(myVars{iVar});
...
end
And the issue happens when b_struct tries to read in 'B_Ahh', because b_struct the field is 'B_AHH'
The error that matlab gives is this:
Reference to non-existent field 'B_Ahh'.
Error in final_dataPrep
b_sp = b_struct.dArray.(myVars{iVar});
But it outputs previous fields whose case match my search words.
Ideally, I just want to ignore the case altogether.
I am lost and frustrated about this. Any guidance would be greatly appreciated!
0 comentarios
Respuestas (1)
Fangjun Jiang
el 23 de Feb. de 2021
Editada: Fangjun Jiang
el 23 de Feb. de 2021
for iVar=1:numel(myVars)
b_sp = b_struct.dArray.(upper(myVars{iVar}));
end
3 comentarios
Fangjun Jiang
el 23 de Feb. de 2021
Try this and figure it out
%%
clear b_struct
b_struct.dArray.B_AHH=1;
myVars{1}='B_Ahh';
b_struct.dArray.(upper(myVars{1})) % this works
b_struct.dArray.(myVars{1}) % this has error
ans =
1
Reference to non-existent field 'B_Ahh'.
Error in Untitled (line 7)
b_struct.dArray.(myVars{1})
Ver también
Categorías
Más información sobre File Operations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!