将一个表转换为基于坐标的矩阵

22日视图(30天)
你好,
我有一个表,包含三个变量:X坐标(X), Y坐标(Y)和一个值点(Int)。X和Y坐标是等距的。我想把它转换成一个矩阵,的位置中的Int值矩阵将代表它的坐标。如何做到这一点呢?
谢谢提前

接受的答案

鸡向量
鸡向量 约3小时前
编辑:鸡向量 约1小时前
小心因为Matlab使用反向indec这样你有X行和列。
只是反循环中的indec反转这种行为。
%设置表为例:
x = 0。1: 5;
y = 0: .2:1;
z = 0:5;
T =表(x, y, z ',“VariableNames”,{“X”,“Y”,“价值”})
T =6×3表
X Y 价值 ___ ___ _____2 0 0 0 0.1 0.2 1 0.2 0.4 0.5 0.3 0.4 - 0.8 0.6 - 3 4 5 1
现在我们提取一些信息关于X和Y坐标。
如果你的X和Y的形式:
1:10
ans = 1×10
1 2 3 4 5 6 7 8 9 10
那么这部分不是必需的。
%初始化转换:
nData =大小(T, 1);
matrixData = 0 (nData);
xStep = diff (T {[1, 2], 1});
yStep = diff (T {[1、2], 2});
xOffset = xStep - T {1};
yOffset = yStep - T {1,2};
最后,我们遍历表的每一行将矩阵中的值:
%分配表的值:
j = 1: nData
xMatrix = int64 ((T {j, 1} + xOffset) / xStep);
yMatrix = int64 ((T {j 2} + yOffset) / yStep);
matrixData T (xMatrix yMatrix) = {j 3};
结束
这是由于:
%显示结果:
matrixData
matrixData = 6×6
0 0 0 0 0 0 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 3 0 0 0 0 0 0 4 0 0 0 0 0 0 5
6个评论

登录置评。

更多的答案(0)

标签

s manbetx 845


释放

R2023a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!