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