plot different parts of vector
3 次查看(过去 30 天)
显示 更早的评论
I´ve got a vector M(1x80) and would like to plot four different graphs (graph 1 equals values 1:20, graph 2 values 21:40, ...) and have a name of each of them in the legend (including a trendcurve):
I thougt of a loop like that:
for i = 1:20:80
plot(M3(i);
legend('Graph 1');
end
Can you tell me where the error is?
Thanks a lot for helping me!
0 个评论
采纳的回答
Sriram Tadavarty
2020-3-17
编辑:Sriram Tadavarty
2020-3-17
Hi Robin,
The following code will provide what you are looking for
M3 = rand(1,80);
j = 1;
str = [];
for i = 1:20:80
hold on
plot(M3(i:19+i)); % Update this to have 20 values, which is fixed to 1 in your code
str = [str ["Graph " + num2str(j)]]; % To have different legend for each plot through string array
j = j+1;
end
legend(str)
Hope this helps.
Regards,
Sriram
4 个评论
Sriram Tadavarty
2020-3-17
Hi Robin,
Please do accept the answer, if helped.
Here, col is the cell array and it need to be accessed through curly brackets {} rather than open bracket (k).
I am not sure what the variable time is.
Use col{k} instead of col(k), it solves the issue. Here is a partial code
col = {'g', 'y', 'c', 'm'};
for i = 1:20:80
plot(M_3(i:19+i), col{k});
str = [str ["Graph " + num2str(j)]];
c_rms = polyfit(1:20,M_3(i:19+i),1);
y_est = polyval(c_rms,1:20);
hold on
str = [str ["Polyfit " + num2str(j)]];
plot(y_est, col{k}, 'LineWidth',2)
j = j+1;
k = k+1;
end
legend(str)
This should provide some insights of how to solve this. I suggest you to start a new question, if there is any other problem.
Thanking you
Regards,
Sriram
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Surface and Mesh Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!