在做参数模拟或者动态生成图表标题的时候,结构体的字段名和对应值之间的替换,手动真的麻烦。这时候用 struct2strrep
就挺顺手的。它能直接把字符串里写的字段名,自动换成你结构体里设的值。
字符串中嵌字段名的操作场景还挺多,比如动态拼接公式、调试时打印信息、图表标题自动更新等等。以前我都用 strrep
一点点替换,麻烦得。现在用这个函数,结构体赋完值直接一行搞定,清晰也不容易出错。
像下面这个例子,我在绘图时想把公式自动带上结构体值:
q.mu = 0; q.theta = 2; q.sig = 0.3;
utitle{2} = struct2strrep(q, 'dI_n/dt = q.theta(q.mu-I_n)dt + 2*q.sigWsurddt');
换完之后字符串就变成了实际值带进去的样子,挺省事的。
另外,匿名函数的情况也能,像这种:
pA = 1.6; pf = 50/1000; p.dc = 0;
Ia = @(t,p) p.dc + pA * sin(2 * pi * pf * t);
utitle{1} = struct2strrep(p, ['I_a = ' strrep(func2str(Ia), '@(t,p)', '')]);
用起来还是比较灵活的,适合做那种公式展示或者参数动态更新的情况。
如果你平时也有在写一些带动态字段的字符串,或者喜欢让图上的公式自动变,那可以试试这个方法。