Create mesh from matrix
2 次查看(过去 30 天)
显示 更早的评论
I have two matrix a and b, which have dimension of 241 x 360. The values from the a and b gives a mesh. How do I plot the mesh?
8 个评论
采纳的回答
Walter Roberson
2023-10-12
a = [0 2 3;
0 2 4];
b = [ 0 2.3 4;
5 5 3];
h = size(a,1);
w = size(a,2);
idx = reshape(sub2ind([h, w], 1:h*w), h, w);
tl = idx(1:end-1, 1:end-1);
tr = idx(1:end-1, 2:end);
ll = idx(2:end, 1:end-1);
lr = idx(2:end, 2:end);
T = [tl(:), ll(:), lr(:), tr(:)];
X = [a(:), b(:), zeros(numel(a),1)];
tetramesh(T, X)
view(2)
1 个评论
Walter Roberson
2023-10-13
The sub2ind() is not needed...
a = [0 2 3;
0 2 4];
b = [ 0 2.3 4;
5 5 3];
h = size(a,1);
w = size(a,2);
idx = reshape(1:h*w, h, w);
tl = idx(1:end-1, 1:end-1);
tr = idx(1:end-1, 2:end);
ll = idx(2:end, 1:end-1);
lr = idx(2:end, 2:end);
T = [tl(:), ll(:), lr(:), tr(:)];
X = [a(:), b(:), zeros(numel(a),1)];
tetramesh(T, X)
view(2)
更多回答(1 个)
Image Analyst
2023-10-12
Not sure what you mean by "plot" but to view a and b as 2-D images and 2.5-D surface plots:
subplot(2, 2, 1);
imshow(a, []);
subplot(2, 2, 2);
imshow(b, []);
subplot(2, 2, 3);
surf(a);
subplot(2, 2, 4);
surf(b);
Or you could simply double click on a and b in the workspace panel to bring them up in the variable editor panel in MATLAB.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!