How to create multiple matrices using for loop?
Show older comments
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
Atsushi Ueno
on 17 Apr 2021
You should treat P as a 2D matrix. I am not sure if this comment solve your question.
P(:,i) = [x(i);y(i)];
Rohit Raut
on 17 Apr 2021
Atsushi Ueno
on 17 Apr 2021
If you mean "different 2x1 matrices" as "tuple (cell array)", you should change your code as below.
P{i} = [x(i);y(i)];
Atsushi Ueno
on 17 Apr 2021
How about this one?
eval(['P' num2str(i) ' = [x(' num2str(i) ');y(' num2str(i) ')]']);
Jan
on 17 Apr 2021
@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
Atsushi Ueno
on 18 Apr 2021
Stephen23
on 18 Apr 2021
A cell array already contains those "multiple matrices", which are trivially accessible via indexing.
Jonas
on 18 Apr 2021
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
Answers (0)
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!