【发布时间】:2014-08-15 19:54:43
【问题描述】:
我正在使用 MATLAB。
所以我有 3 个数组;说a,b,c。 a和b代表距离,c代表在(a,b)点有特定值的变量。
我一直在尝试创建一个由 (b x a) 单元组成的矩阵,并用 c 的值填充它,以便对其进行图像、热图等。
但是我遇到的问题是 a 和 b 有很多重复值; a 保持固定,然后遍历 b 的所有值,然后移动到 a 的下一个值,依此类推。 a 和 b 的范围是固定的,并且总是在等间距的值之间进行迭代。
以下是我为此创建的代码。所以它似乎不起作用,我没有想法。
z_true_len = length(unique(a)); %number of z distances
r_true_len = length(unique(b)); %number of r disatances
data_matrix = zeros(r_true_len,z_true_len); %create r x z matrix, full of 0s
z_past = 0;
r_past = 0;
z_count = 1;
r_count = 1;
for count = 1: length(a)
z_current = a(count);
if z_past ~= z_current
data_matrix(1:z_count) = c(count);
z_past = z_current;
z_count = z_count + 1;
r_count = 1;
else
data_matrix(r_count:z_count) = c(count);
r_count = r_count + 1;
end
end
data_matrix
如有任何帮助,将不胜感激
【问题讨论】:
-
你能举个小例子吗?
-
当然,说; a=(1 1 1 2 2 2) b=(1 2 3 1 2 3) c=(1 2 3 4 5 6) 那么它会返回 data_matrix=(1 4, 2 5, 3 6)
-
请看我的回答。我假设您的意思是
[1 4; 2 5; 3 6]代表data_matrix
标签: arrays matlab matrix populate