Assigning X-Y Coordinates to 2-D Matrix
Mostra commenti meno recenti
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
clc
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, '*');
end
end

Risposte (1)
What I think you are trying to do is,
[x,y]=meshgrid([0,100,200],[200 100 0])
plot(x(:),y(:),'*'); axis padded
8 Commenti
The OP wants to have
A(i,j) = [x(i),y(j)]
We had a long discussion that this is not possible for A being a usual numeric matrix.
Please convince him ...
If the desires is to have something like that, then one way would be.
[x,y]=meshgrid([0,100,200],[200 100 0]);
A=permute( cat(3,x,y) ,[1,3,2]);
A(1,:,2)
tinkyminky93
il 30 Mar 2022
Modificato: tinkyminky93
il 30 Mar 2022
tinkyminky93
il 30 Mar 2022
Modificato: tinkyminky93
il 30 Mar 2022
it does not created with for loop
Yes, it ihas already been explained to you in a previous thread that meshgrid or ndgrid are better for this than a for-loop. Also, you already have a for-loop that creates the x,y data (as separate matrices), so you clearly do not need help with that part of it if you really insist on using a for loop.
It seems like it is 3-D array
Yes. It has already been explained to you in a previous thread that you cannot have a 2D matrix consisting of non-scalar elements. So, I'm not sure why you would like to repeat that discussion.
I did not get the permute and cat part of your code also. I am not familiar with them.
Perhaps you should read the documentation about them.
tinkyminky93
il 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]);
A(1,:,2)
Categorie
Scopri di più su Matrix Indexing in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
