优化代码 figure(1) plot(1:length(B5.C),B5.C,'r',1:length(B6.C),B6.C,'b',1:length(B7.C),B7.C,'g',1:length(B18.C),B18.C,'c'); grid on legend('B0005','B0006','B0007','B0018'); %四个电池SOH随周期变化图 figure(2) plot(1:length(B5.C),B5.C/B5.C(1),'r',1:length(B6.C),B6.C/B6.C(1),'b',1:length(B7.C),B7.C/B7.C(1),'g',1:length(B18.C),B18.C/B18.C(1),'c'); hold on line([180 0], [0.7 0.7], 'Color', 'k','LineStyle','-', 'LineWidth', 2); % 添加红色、宽度为2的线 grid on legend('B0005','B0006','B0007','B0018');
时间: 2023-08-20 07:24:59 浏览: 48
可以使用循环和cell数组来简化这段代码。代码如下:
```
figure(1)
colors = {'r','b','g','c'};
batteries = {B5, B6, B7, B18};
hold on
for i = 1:length(batteries)
plot(1:length(batteries{i}.C), batteries{i}.C, colors{i});
end
grid on
legend('B0005','B0006','B0007','B0018');
figure(2)
hold on
for i = 1:length(batteries)
plot(1:length(batteries{i}.C), batteries{i}.C/batteries{i}.C(1), colors{i});
end
line([180 0], [0.7 0.7], 'Color', 'k','LineStyle','-', 'LineWidth', 2);
grid on
legend('B0005','B0006','B0007','B0018');
```
这段代码使用cell数组存储电池数据,使用循环遍历每个电池并绘制它们的SOH随周期变化图。在第二个图中,添加了一条黑色线来表示70%的SOH阈值。这段代码更简洁,易于阅读和维护。