If A is a matrix, A(:) produces the columns in a vector. Is there a parallel function for rows?

A=[1,2,3;4,5,6;7,8,9]. Then A(:) returns [1;2;3;4;5;6;7;8;9]. Is there an operator that will produce [1,2,3,4,5,6,7,8,9]?

Answers (1)

First, I assume your example result is a typo, since A(:) will return the elements in column order, not row order. E.g.,
>> A=[1,2,3;4,5,6;7,8,9]
A =
1 2 3
4 5 6
7 8 9
>> A(:)
ans =
1
4
7
2
5
8
3
6
9
To get them out in row order, transpose A first. E.g.
>> A=[1,2,3;4,5,6;7,8,9]
A =
1 2 3
4 5 6
7 8 9
>> reshape(A',[],1)
ans =
1
2
3
4
5
6
7
8
9

2 Comments

Both return [1,4,7,2,5,8,3,6,9] instead of [1,2,3,4,5,6,7,8,9]
Ummm ... that was a direct copy from my MATLAB command window, and the order is clearly 1,2,3,4,5,6,7,8,9 as shown. If you want the result as a row instead of a column, then simply:
reshape(A',1,[])

Sign in to comment.

Categories

Find more on Operators and Elementary Operations in Help Center and File Exchange

Tags

Asked:

on 26 Aug 2016

Edited:

on 26 Aug 2016

Community Treasure Hunt

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

Start Hunting!