gpt4 book ai didi

matlab - 在 for-loop Matlab 中分配图例

转载 作者:太空宇宙 更新时间:2023-11-03 20:09:58 29 4
gpt4 key购买 nike

我试过在循环中给出图例,但它覆盖了之前编写的图例,如何将它们插入到 if 语句或 for 循环中。迷茫

    clear;
vin=10
for m=1:1:14;

vin=vin+10
for i=1:1:27
Wa_Ac = PVinv.CoreSizeModel();
PVinv.CoreSelect(Wa_Ac,i);
loss_ind_core= PVinv.InductorLossModel(PVinv.m_L_Selected);

if(i==1)
p=plot(vin,loss_ind_core,'--gs');
hold on
end
if(i==2)
p=plot(vin,loss_ind_core,'--rs');
end %...till i=27

legend(obj.m_Core_List(i).name);
xlim([10e3 90e3])
set(gca,'XTickLabel',{'10';'20';'30';'40';'50';'60';'70';'80';'90'})
grid on
xlabel('Vin');
ylabel('Power loss');
end
end

调用函数

function obj = CoreSelect(obj, WaAc)
obj.m_Core_Available= obj.m_Core_List(i);
obj.m_L_Selected.m_Core = obj.m_Core_Available;

end

最佳答案

创建一个元胞数组来保存图例名称。在 for 循环之前定义类似的东西

legend_names = cell(1,27 * 14);

然后,在循环中填充单元格:

legend_names{27*(m-1)+i} = obj.m_Core_List(i).name;

end之后设置图例:

legend(legend_names);

我可能误解了索引(m vs i)以及它们与名称的关系,但重点是您可以将元胞数组传递给图例一次创建图例的函数。

一个例子是:

>> legend_names=cell(1,2);
>> legend_names{1} = 'str';
>> legend_names{2} = 'str2';
>> plot(0:4,0:4)
>> hold on
>> plot(1:5,0:4)
>> legend(legend_names)

这会产生 enter image description here

关于matlab - 在 for-loop Matlab 中分配图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9806561/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com