Use Value of String Array to name a variable
15 次查看(过去 30 天)
显示 更早的评论
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
1 个评论
Stephen23
2020-12-2
编辑:Stephen23
2025-8-5
"Use Value of String Array to name a variable"
Your question shows that you actually want to name a structure field, not a variable.
One answer to your question would be to use dynamic fieldnames:
But as Ameer Hamza wrote, a much better approach would be to store the filename as data in its own field.
采纳的回答
Ameer Hamza
2020-12-2
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{:});
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Structures 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!