matlab用字符串按名索引结构体(struct)的成员变量(field)
matlab 一个训练函数中的若干记录用一个叫 records 的结构体返回,其中包括多个 loss 的 list / vector,现用一个循环遍历这些 loss lists、画图、保存。Codegetfield 用字符串取 struct 的 fieldsaveas 保存 figure% 假装 res 是某个函数返回的结果res = struct();res.loss_1 = [1 2 3];r
·
matlab 一个训练函数中的若干记录用一个叫 records
的结构体返回,其中包括多个 loss 的 list / vector,现用一个循环遍历这些 loss lists、画图、保存。
Code
getfield
用字符串取 struct 的 fieldsaveas
保存 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

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)