matlab用字符串按名索引结构体(struct)的成员变量(field)

matlab 一个训练函数中的若干记录用一个叫 records 的结构体返回,其中包括多个 loss 的 list / vector,现用一个循环遍历这些 loss lists、画图、保存。

Code

  • getfield 用字符串取 struct 的 field
  • saveas 保存 figure
% 假装 res 是某个函数返回的结果
res = struct();
res.loss_1 = [1 2 3];
res.loss_2 = [4 5 6];

% 用字符串按名取 field
for k = ["loss_1", "loss_2"]
    v = getfield(res, k);
    fprintf("--- %s\n", k);
    % disp(v);

    % 画图
    if length(v) < 2
        continue;
    end
    f = figure;
    x = 1 : length(v);
    % 下在一幅图中同时画两条线(好像也可以 `hold on` + 多次 plot)
    plot(x, v, x, -v);
    legend("1st", "2nd");
    % 保存
    saveas(f, sprintf("log/%s.png", k));
    close(f);
end

References

  1. getfield
  2. plot
  3. saveas
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值