MATLAB: Use Value of String Array to name a variable

arrayMATLABnamesstructvariable

Hello,
I'm trying to combine results of multiple files into one struct.
Said struct should be named the following name:
result.[FileName1].Result1ofFile1
result.[FileName1].Result2ofFile1
result.[FileName2].Result1ofFile2
...
result.[FileNameX].ResultYofFileX
I save the file names in an String array. Thus
FileName(1) = "abc1"
FileName(2) = "abc2"
...
and so on.
Unfortunately I can't figure out how to make it work.
How can I use the String stored in an array as a variable name?
At the end it should look like this, without the need of typing in the abc-Names myself:
result.abc1.Result1ofFile1
result.abc2.Result1ofFile2

Best Answer

First, I must say that this does not seem to be a good idea. It is better to store filenames as a separate field and create an array of the struct. For your case, something like this might be better.
result = struct('data', {}, 'filename', {});
result(1).data = Result1ofFile1;
result(1).filename = FileName(1);
result(2).data = Result1ofFile2;
result(2).filename = FileName(2);
For your current question, you can try something like this
FileName(1) = "abc1";
FileName(2) = "abc2";
C = cell(1, 2*numel(FileName));
C(1:2:end) = num2cell(FileName);
result = struct(C{:});