如何用for循环将多个2d矩阵存入单个cell array
多个2x2数组存入同一cell数组的for循环实现方法
完全可以通过for循环实现该需求,以下是两种常见场景的写法:
- 场景1:待存储的2x2数组命名带统一规律的数字后缀
如果你的数组命名为arr1、arr2、arr3……arrN这类格式,可以用eval函数配合循环实现:var_num = 15; % 替换为你实际的数组总数量 target_cell = cell(1, var_num); % 提前分配cell空间,提升运行效率 for idx = 1:var_num target_cell{idx} = eval(sprintf('arr%d', idx)); end注:
eval函数会降低代码可读性和运行效率,仅建议临时处理数据时使用。 - 场景2:数组命名无规律,可手动罗列所有待存储数组
你可以先把所有数组放进临时元胞列表,再通过循环赋值(也可以直接将临时列表作为最终结果,此处仅演示循环逻辑):% 把你所有的2x2数组按顺序写入临时列表 temp_list = {mat_a, mat_b, mat_c, test_mat, res_mat}; var_num = length(temp_list); target_cell = cell(1, var_num); for idx = 1:var_num target_cell{idx} = temp_list{idx}; end
内容的提问来源于stack exchange,提问作者Basic programmer
相关产品推荐
相关产品推荐

