expand array within for loop

1 次查看(过去 30 天)
hello,
I have this code:
close all
x=[0,1,2,3,4,5]
x1=sin(x)
p1=x1(2)
p2=x1(3)
x3=cos(x)
p4=x3(2)
p5=x3(3)
figure(1)
plot(x1)
hold all
plot([2],[p1],'o')
plot([3],[p2],'o')
plot(x3)
plot([2],[p4],'o')
plot([3],[p5],'o')
k=2
for k=1:k
ls1=[num2str(k),'.Q']
ls2=[num2str(k),'.SR']
ls3=[num2str(k),'.r']
end
legend(ls1,ls2,ls3)
and I would like to fix the legend. I want my program to tell me that the 6 legend variables are: 1.Q,1.SR,1.r,2.Q,2.SR,2.r
Right now the program is overwriting the outcome of the for loop.
How do I do this?
Thank sou yo much!

采纳的回答

Walter Roberson
Walter Roberson 2019-4-3
legend( [1 2] + [".Q"; ".SR"; ".r"] )
Requires R2017a or later.
  2 个评论
Walter Roberson
Walter Roberson 2019-4-3
Note that for this purpose it was important that the first part [1 2] be a row vector and the second part [".Q"; ".SR"; ".r"] be a column vector, and that R2016b or later were used, as "implicit expansion" is used here to get all combinations of the two. The restriction to R2017a or later is because the string object syntax "" was introduced in R2017a. There is a way to extend the use of string objects to R2016b as well. String objects did not exist before R2016b, so for earlier releases a different approach would have to be used.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Legend 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by