【发布时间】:2019-11-22 16:35:25
【问题描述】:
我有一个代码需要根据用户的要求有条件地绘制多达 6 个图。
用户可以指定一个字符向量,如'123'、'245'、'123456'、'3456'等。如果字符向量中有图形编号,则需要进行绘图。如果它没有出现在字符向量中,则不会绘制。
我能想到的唯一逻辑是:
str = '123456';
if contains(str,'1')
% plot 1
end
if contains(str,'2')
% plot 2
end
if contains(str,'3')
$ plot 3
end
% etc... for a total of six if statements
有没有更好的方法在代码中实例化这个逻辑?我不能 switch 或 elseif 因为通常需要制作超过 1 个地块。
编辑:我无法使用 for 循环解决方案
for i = 1:6
if contains(str,i)
% plot i
end
end
因为在% plot i 内,我必须执行相同的一组 6 个 if 语句来确定传递给 plot 命令的内容。
【问题讨论】:
-
注意:我需要/选择拥有超过 6 个地块。
-
不同地块的代码是否有相似之处?
-
一些,但我认为没有一个是可以利用的。如果我做了一个 for 循环和一个关于是否应该制作第 i 个图的条件语句,我将不得不执行 if 语句来确定将什么传递给 plot 命令以及如何格式化图。
标签: matlab if-statement conditional-statements