MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by Matthew
on 26 May 2013

Hi all,

I have a 3 by 7 matrix as following:

g =

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

if I write

g(9) = 1

I get:

g =

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0

when actually want g(9) = 1 to be:

g =

0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0

or in other terms, instead of counting down columns for 1,2,3,4,5...... I want to count across rows. Is there an option in Matlab to change this function.

Thank you in advance.

Matthew.

*No products are associated with this question.*

Answer by Walter Roberson
on 26 May 2013

Accepted answer

No, there is no option to change the order of the dimensions.

If there is an especially good reason to count across, you could use

Tg = g.'; Tg(9) = 1; g = Tg.';

There are also calculations that can be done to switch between the two orderings, but my algebra center in my brain is telling me it is the weekend and it wants to sleep in...

Answer by Image Analyst
on 26 May 2013

You can transpose it, change it, and transpose it. But why not just use row, column indexing? There are also functions subs2ind() and ind2subs() that you might be interested in.

## 0 Comments