0

我正在尝试遍历我所说的 30+ 的变量列表,并计算每个变量中每列的最大值和最小值。将其保存在新数组中,然后导出到 excel。

我的想法是使用 who 函数创建一个数组,其中包含所有存在的变量的名称。然后在计算出创建的数组的大小后,使用 for 循环遍历每个数组。这很好用,但是当我尝试使用字符串来引用数组时它不起作用。

我将添加我编写的代码,希望有人能够提出一个简单的解决方案:)。

variable_list = who
cell2 = input('What cell size do you want to look at? ');
STARTcell = input('What was the start cell size? ');
[num_variables, temp] = size(variable_list);
for va = 1:num_variables
     variable = variable_list{va}    
     [max_value, max_index] = max(variable{cell2/STARTcell})
     [min_value, min_index] = min(variable{cell2/STARTcell})
     format_values{va} = vertcat(max_values, max_index, min_value, min_index);
end

我正在查看的变量是数组,这就是我使用 cell2/STARTcell 来引用它们的原因。

4

1 回答 1

0

您需要使用该eval()函数才能获取与字符串对应的变量的值。例如:

a = 1;
b = 2;
variable_list = who;
c = eval(variable_list{2});

结果c为 2。在您的代码中,以下行需要更改为:

variable = variable_list{va}

至:

variable = eval(variable_list{va});

导致variable具有由字符串指示的变量的值variable_list{va}。如果variablecell类型,那么您应该没问题,否则您可能还必须修改接下来的两行代码,因为您似乎正在尝试访问 a 的内容cell

于 2013-05-20T02:27:20.500 回答