MATLAB Efficiently Set a Sequence in Matlab: Quick Question Answered

  • Thread starter Thread starter lewdtenant
  • Start date Start date
  • Tags Tags
    Matlab
AI Thread Summary
To create an array in MATLAB with 9 increments from 0 to 64, the user initially attempted to use the command a = [0:7.11:64], which is a brute force method. However, a more efficient approach is to use the linspace function, which can generate evenly spaced values. For plotting, to achieve finer control over the x-axis and y-axis tick marks, one can specify the tick marks manually. By using commands like set(gca,'XTick',...) and set(gca,'XTickLabel',...), users can customize the tick distribution and labels on the axes, allowing for more detailed representation of data points. This method enhances the clarity of the plot by allowing for increments of 1 rather than larger intervals.
lewdtenant
Messages
63
Reaction score
1
Matlab --> quick question

Homework Statement



suppose I want to set a = [0:64] with an output of 9 increments. For the life of me I cannot remember how to do this other than doing it brute force style.


Homework Equations





The Attempt at a Solution



since 64/9=7.11 then, a =[0:7.11:64] gives me 9 increments but I know there's a better way to do this. please help, thanks.
 
Physics news on Phys.org
help linspace
 
yes, thanks
 
is there a way that i can plot more points in the x-axis and the y-axis? instead of going by 5 -10 -15- 20 and go 5 - 6 - 7 - 8 - 9...20 .
 
well, I'm no MATLAB expert, but here goes.

When you specify x and y, making x= [5:1:20] will give you 5, 6, 7, 8... 20. you can do this for y also. then when you plot (x, y) it should give you what you need.

i hope that helps, let me know if i misunderstood your question.
 
if i plot x= [5:1:20] and y= [5:1:20], the axes spacing goes 5,10,15,20, but i would like to make it go 1 by 1. thus showing more points in the plot.

not sure if that is possible, but that´s why I am asking i guess.

thanks for your help btw
 
tko_gx said:
if i plot x= [5:1:20] and y= [5:1:20], the axes spacing goes 5,10,15,20, but i would like to make it go 1 by 1. thus showing more points in the plot.

not sure if that is possible, but that´s why I am asking i guess.

thanks for your help btw

I think you're just referring to the tick marks on the axis. The distribution of tick marks is not related to the number of points plotted on the graph. You can change the tick mark distribution either going to 'axis properties' in the 'edit' menu of the plot, or you can define them from the command line. For example,
Code:
x = -pi:.1:pi;
y = sin(x);
plot(x,y)
set(gca,'XTick',-pi:pi/2:pi)
set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'})
defines the tick placement and the labels.
 
thank you very much. that's exactly what i meant to say.
 
Back
Top