For loop for different step size

Dear Matlab Community,
I have a matrix like
[24 80; 24 80; 24 80; 24 80; 30 120; 30 120; 48 124; 48 124; 48 124]
I need to have a plot that 80, 120, 124 be in the x axis and the numbers 4,2,3 be in the y axis.
We have 4 of 24, 3 of 30 and 3 of 48.
Thanks :)))

 Accepted Answer

M = [24 80; 24 80; 24 80; 24 80; 30 120; 30 120; 48 124; 48 124; 48 124];
[c,g] = groupcounts(M(:,2))
c = 3×1
4 2 3
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
g = 3×1
80 120 124
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
There are your y- and x-axis numbers.
Perhaps one of these plots is what you mean:
x = 1:numel(g);
figure('Position',[10 10 1000 400])
tiledlayout(2,2)
nexttile
plot(g,c)
nexttile
bar(g,c)
nexttile
plot(x,c)
xticks(x)
xticklabels(g)
nexttile
bar(x,c)
xticks(x)
xticklabels(g)

4 Comments

Thank you Voss,
I did not know about groupcount. What is the meaning of M(:,2) in this command? I know M(:,2), but what is it role in groupcount?

M(:,2) is the second column of M. The code passes the second column of M to groupcounts().

https://www.mathworks.com/help/matlab/ref/double.groupcounts.html

Thank you so much !!!!
You're welcome!

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Asked:

on 2 Oct 2024

Commented:

on 3 Oct 2024

Community Treasure Hunt

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

Start Hunting!