Assigning X-Y Coordinates to 2-D Matrix

74 views (last 30 days)
tinkyminky93 on 29 Mar 2022
Edited: Matt J on 31 Mar 2022
Hello, I am trying to create a matrix like shown below and plot them like shown too. It is a simple 3x3 matrix and it contains X-Y coordinates of a point. I am trying to create this matrix with "for" loop but I cannot assign 2 values (x and y) to an element.
I will index the elements of the matrix for further work so I need these elements individually with their x-y coordinates.
I tried the code below but I know it is not true. Also the plot has some problems. Can you help me? Thanks.
close all
clear all
Z = zeros(3,3)
for i=1:1:3
for j = 1:1:3
x = [0:100:200];
y = [200:-100:0];
A(i,j) = [x(i)];
B(i,j) = [y(j)];
Z = [A B];
plot(Z, '*');

Answers (1)

Matt J
Matt J on 29 Mar 2022
Edited: Matt J on 29 Mar 2022
What I think you are trying to do is,
[x,y]=meshgrid([0,100,200],[200 100 0])
x = 3×3
0 100 200 0 100 200 0 100 200
y = 3×3
200 200 200 100 100 100 0 0 0
plot(x(:),y(:),'*'); axis padded
Matt J
Matt J on 31 Mar 2022
Edited: Matt J on 31 Mar 2022
I believe I have done that already. You have asked for a way to access an individual x,y pair with the syntax A(i,j). By now, you will know that that is impossible, however, I showed you earlier that you can do so with essentially the same syntax A(i,:,j),
[x,y]=meshgrid([0,100,200],[200 100 0]);
A=permute( cat(3,x,y) ,[1,3,2]);
ans = 1×2
100 200

Sign in to comment.


Find more on Creating and Concatenating Matrices 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!

Translated by