How to create multiple matrices using for loop?

How to take input of coordinates of n number of points and store it in different 2x1 matrices?
The loops I am using are as follows but there is some error.
for i=1:n
x(i)=input('Enter the X-coordinate of node ')
y(i)=input('Enter the Y-coordinate of node ')
end
C=[x;y]
for i=1:n
P(i)= [x(i);y(i)]
end

8 Comments

You should treat P as a 2D matrix. I am not sure if this comment solve your question.
P(:,i) = [x(i);y(i)];
Thanks for your answer but it still gives the output as a single P matrix. I want multiple 2x1 matrices P1,P2...n
If you mean "different 2x1 matrices" as "tuple (cell array)", you should change your code as below.
P{i} = [x(i);y(i)];
How about this one?
eval(['P' num2str(i) ' = [x(' num2str(i) ');y(' num2str(i) ')]']);
@Atsushi Ueno: Stay at the cell array. Creating a bunch of variables dynamically with EVAL is a bad programming style. See TUTORIAL: Why and how to avoid EVAL
Thank you. I know it is bad programming style, but Rohit Raut wants multiple 2x1 matrices P1,P2...
"I know it is bad programming style, but Rohit Raut wants multiple 2x1 matrices P1,P2..."
A cell array already contains those "multiple matrices", which are trivially accessible via indexing.
i'm a bit confused what you really want. If u are ok with multiple 2x1 matrices in a cell array you can just use num2cell(C,1) in your case, it divides a 2 x n matrix into n cells containing each 2x1 matrices

Sign in to comment.

Answers (0)

Products

Asked:

on 17 Apr 2021

Commented:

on 18 Apr 2021

Community Treasure Hunt

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

Start Hunting!