使用“who”变量列表打开单元格数组

时间:2013-05-20 00:46:19

标签: matlab

我试图遍历一个我已经说过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来引用它们的原因。

1 个答案:

答案 0 :(得分: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}指示的变量的值。如果variable属于cell类型,那么您应该没问题,否则您可能还需要修改接下来的两行代码,因为您似乎正在尝试访问{{1}的内容1}}。