在MatLab中使用带变量的加载函数

4smxwvx5  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(212)

FilterSize sz=print intf(‘%dx%d’,filterSize,filterSize);
我有一些.mat文件,名为
结果_3x3.mat
结果_5x5.mat
以此类推..
我正在使用加载功能导入该文件。但是因为我有20个文件,所以我需要在for循环中完成。filterSize=3:2:41
我需要使用带变量的matlab中的load函数。我现在手动执行如下操作:

F1_score_3 = load('results_3x3.mat');
accuracy_3 = F1_score_3.accuracy;

F1_score_5 = load('results_5x5.mat');
accuracy_5 = F1_score_5.accuracy;

F1_score_7 = load('results_7x7.mat');
accuracy_7 = F1_score_7.accuracy;

F1_score_3 = load('results_&s.mat',sz);不起作用。
你能帮我弄一下这个吗?另外,我可以在变量中定义另一个变量吗?比如

F1_score_%d, filterSize
amrnrhlw

amrnrhlw1#

不要创建包含如下数字的动态变量名。它们将很难在您的代码中使用下游。最好将结果存储在数组、单元格或结构中。例如,您可以使用单元格阵列来做类似的事情:

F1_score = cell(41,1);
for filterSize=3:2:41
    fname = sprintf( 'results_%dx%d.mat', filterSize, filterSize );
    F1_score{filterSize} = load(fname);
end

然后,当您想要获得准确性时,您可以像往常一样使用索引。例如,

F1_score{3}.accuracy

相关问题