Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: For Loop Problem
Replies: 1   Last Post: Feb 13, 2013 10:09 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View  
Derek Goring

Posts: 3,893
Registered: 12/7/04
Re: For Loop Problem
Posted: Feb 13, 2013 10:09 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

On Thursday, February 14, 2013 4:05:06 AM UTC+13, Pete wrote:
> "Steven_Lord" <slord@mathworks.com> wrote in message <kfg7j3$enm$1@newscl01ah.mathworks.com>...
>

> >
>
> >
>
> > "Pete " <harri.short@hotmail.com> wrote in message
>
> > news:kfg5d3$6k6$1@newscl01ah.mathworks.com...
>
> > > Hi,
>
> > > I am trying to use a For Loop to assign each individual number in a 31x1
>
> > > matrix a letter. I have tried to create a For loop but i keep getting an
>
> > > error saying that it cannot label the point as there are not enough points
>
> > > in the matrix, i.e there are 31 numbers in the matrix and it is trying to
>
> > > find the 32nd. What am i doing wrong? Here is what i have at the moment:
>
> > >
>
> > > for j=1:length(Tr)
>
> > > A=Tr(j);
>
> > > B=Tr(j+1);
>
> >
>
> > When j is equal to length(Tr), Tr(j+1) is one past the end of the array. How
>
> > to fix this depends on what exactly you're trying to do. There are likely
>
> > ways to do what you described without a loop, depending on the specific
>
> > details behind your individual numbers. Are they integer values? Are they
>
> > unique? What criteria are you using to generate the number -> letter
>
> > mapping? If you post more information to the newsgroup, people may be able
>
> > to offer more specific suggestions.
>
> >
>
> > --
>
> > Steve Lord
>
> > slord@mathworks.com
>
> > To contact Technical Support use the Contact Us link on
>
> > http://www.mathworks.com
>
>
>
> No they are not integer values.
>
> Tr=linspace(Cm1,Cm2,31)';
>
> (Cm1 and Cm2 being values calculated previously) So Tr is a 31x1 matrix of values. I want to assign each value in the matrix an individual letter. So the first value in the matrix is A, the second value is B, third C and so on so all 31 values are assigned a letter. I think a For loop is the best way to do this as the values in Tr may change when i run different data in the script?


The question is: why are you assigning them a letter?

If it is to then use them as text on a plot or the column names in Excel, then one way to do that is to simply map char(65:90) to your Tr.
Type:
char(65:90)
to see what I mean.
char(65) is A, char(66) is B, etc

But if you plan to use A, B, etc as variable names, then this is very naughty and you SHOULD NOT do it.
Instead, you should use an array or a structure.
If this is what you plan to do, give us more details and we can give you a better strategy.




Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.