Concatenate name fields in nested structure
Hello,
I am trying to save value of the data placed in the last fields in nested structure by concatenating string in recursion. The name of the file should string composed of the all preceding fields in structure.
However I am not able to save previous fields.
The code is as follows:
nameDataBase = ‘database.mat’;
structNest = load([pathFolder, nameDataBase]);
structFields = myIsField(structNest, ‘data’);
pathOutputFile = pathFolder;
fileName = ”
function isFieldResult = myIsField (inStruct, fieldName)
% inStruct is the name of the structure or an array of structures to search
% fieldName is the name of the field for which the function searches
B = struct();
display(‘output folder’)
isFieldResult = 0;
f = fieldnames(inStruct(1))
f1 = string(fieldnames(inStruct(1)))
for i=1:1%length(f)
display("i")
i
if(strcmp(f{i},strtrim(fieldName)))
isFieldResult = 1;
display(‘data found – end’)
B.(f{i}) = inStruct(1).(f{i})
data = getfield(B,’data’)
return;
elseif isstruct(inStruct(1).(f{i}))
isFieldResult = myIsField(inStruct(1).(f{i}), fieldName);
B.(f{i}) = inStruct(1).(f{i})
if isFieldResult
display(‘time found -loop’)
return;
end
end
endHello,
I am trying to save value of the data placed in the last fields in nested structure by concatenating string in recursion. The name of the file should string composed of the all preceding fields in structure.
However I am not able to save previous fields.
The code is as follows:
nameDataBase = ‘database.mat’;
structNest = load([pathFolder, nameDataBase]);
structFields = myIsField(structNest, ‘data’);
pathOutputFile = pathFolder;
fileName = ”
function isFieldResult = myIsField (inStruct, fieldName)
% inStruct is the name of the structure or an array of structures to search
% fieldName is the name of the field for which the function searches
B = struct();
display(‘output folder’)
isFieldResult = 0;
f = fieldnames(inStruct(1))
f1 = string(fieldnames(inStruct(1)))
for i=1:1%length(f)
display("i")
i
if(strcmp(f{i},strtrim(fieldName)))
isFieldResult = 1;
display(‘data found – end’)
B.(f{i}) = inStruct(1).(f{i})
data = getfield(B,’data’)
return;
elseif isstruct(inStruct(1).(f{i}))
isFieldResult = myIsField(inStruct(1).(f{i}), fieldName);
B.(f{i}) = inStruct(1).(f{i})
if isFieldResult
display(‘time found -loop’)
return;
end
end
end Hello,
I am trying to save value of the data placed in the last fields in nested structure by concatenating string in recursion. The name of the file should string composed of the all preceding fields in structure.
However I am not able to save previous fields.
The code is as follows:
nameDataBase = ‘database.mat’;
structNest = load([pathFolder, nameDataBase]);
structFields = myIsField(structNest, ‘data’);
pathOutputFile = pathFolder;
fileName = ”
function isFieldResult = myIsField (inStruct, fieldName)
% inStruct is the name of the structure or an array of structures to search
% fieldName is the name of the field for which the function searches
B = struct();
display(‘output folder’)
isFieldResult = 0;
f = fieldnames(inStruct(1))
f1 = string(fieldnames(inStruct(1)))
for i=1:1%length(f)
display("i")
i
if(strcmp(f{i},strtrim(fieldName)))
isFieldResult = 1;
display(‘data found – end’)
B.(f{i}) = inStruct(1).(f{i})
data = getfield(B,’data’)
return;
elseif isstruct(inStruct(1).(f{i}))
isFieldResult = myIsField(inStruct(1).(f{i}), fieldName);
B.(f{i}) = inStruct(1).(f{i})
if isFieldResult
display(‘time found -loop’)
return;
end
end
end concatenate name fields in nested structure MATLAB Answers — New Questions