Convert xy Coordinates to Matrix
21 ビュー (過去 30 日間)
古いコメントを表示
I have an xy coordinates positions (100x2) and another z vector (100x1) with values corresponding to each xy coordinate. How can I make a matrix of the coordinates with the position of each coordinate having the corresponding z value? Thanks!
0 件のコメント
採用された回答
Andrei Bobrov
2013 年 5 月 27 日
編集済み: Andrei Bobrov
2013 年 5 月 27 日
after John's comment in Image Analyst's answer:
out = accumarray([x(:),y(:)],z(:),[10 10]);
or
out = zeros(10);
out(sub2ind(size(out),x,y)) = z;
4 件のコメント
cecilia dip
2016 年 11 月 28 日
Hi, I have to do the same thing, and i've tried this, but my coordinates (x,y) are negative and non-integer numbers, as they are latitude,longitude.. how can i do this? I want a plot where for each(lat,long) i can have my Z value (in a color scale, as i will compare it with interpolation methos later). Thank you!
その他の回答 (2 件)
Image Analyst
2013 年 5 月 26 日
Try this:
% Setup / initialization.
% Start out matrix as zeros.
m = zeros(20,10);
% Generate 100 random coordinates.
xy = int32(randi(10, 100, 2));
% Get matrix values for those x,y locations
z = randi(255, 100, 1); % 100 values.
% Now, do what the poster, John, wants to do.
% Assign the z values to the (x,y) coordinates at the corresponding row.
% E.g. m at (x(1), y(1)) will have a value of z(1).
% m at (x(2), y(2)) will have a value of z(2). And so on.
indexes = sub2ind([20, 10], xy(:,1), xy(:,2))
m(indexes) = z
6 件のコメント
Image Analyst
2021 年 3 月 24 日
Try using a scatteredInterpolant. Demo attached.
If you still need help, attach your x, y, and z data in a new question (not here) so people can help you.
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!