You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用For Loop在Octave中快速创建20个零矩阵?

批量创建零矩阵的高效实现方法

一、用for循环创建独立变量(满足需求,但不推荐)

如果一定要生成metrics_1到metrics_20这些独立变量,可以结合sprintf和eval在for循环里完成:

for i = 1:20
    % 生成变量名
    var_name = sprintf('metrics_%d', i);
    % 执行赋值语句
    eval([var_name ' = zeros(10, 19);']);
end

注意:eval虽然能实现需求,但后续对这些变量的管理、批量操作会很麻烦,容易引发错误,更推荐下面的存储方式。

二、更高效的批量存储方式

1. 三维数组存储

这是MATLAB里最高效的批量数据存储方式,直接创建一个三维数组,每个维度切片对应一个10×19的零矩阵:

% 创建10行19列20层的三维零数组
metrics_array = zeros(10, 19, 20);

后续访问第k个矩阵时,只需用metrics_array(:,:,k),还能方便地对所有矩阵进行批量运算。

2. 结构体存储

如果需要保留类似metrics_1的命名结构,用结构体存储更直观:

metrics_struct = struct();
for i = 1:20
    % 给结构体动态添加字段并赋值
    metrics_struct.(sprintf('metrics_%d', i)) = zeros(10, 19);
end

访问第k个矩阵时,使用metrics_struct.metrics_k即可,结构体字段名清晰,便于区分不同矩阵。

内容的提问来源于stack exchange,提问作者kostasmath23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 08:32:38