Can I store row numbers of a matrix in a column without using any loop?

How will I store the first column of a matrix as its corresponding row number without using a loop. That is, the first column for a 3x3 matrix as [1 . .;2 . .;3 . .].

2 Comments

You mean something like this;
A=[1 5 6; 2 7 8;3 9 0];
B = A(:,1); % this will make B = [1;2;3]
Ok. This is the case. I have a very large data, something like 100,000 data points, so 100,000 rows. I want to store the first column of a matrix newly created (with as many rows as number of data points mentioned) as its corresponding row number. I can do what you've mentioned. But it'll take me a new matrix and another loop to create that matrix. Could you suggest something which takes less time.

Sign in to comment.

 Accepted Answer

a = magic(3);
a(:, 1) = [1:3]; % This will store the row index in the first column of 'a'

3 Comments

The [] brackets around 1:3 are completely unnecessary and only slow the code down. A good answer wouldn't hardcode the height of the matrix:
a(:, 1) = 1:size(a, 1);
If that is indeed what is required.

Sign in to comment.

More Answers (0)

Categories

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

Community Treasure Hunt

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

Start Hunting!