2016-10-27 61 views
0

我有一个NaN(155 * 135)矩阵,另一个矩阵显示具有行号和列号的特定值。有没有一种方法可以将这些值分配回NaN矩阵,最终具有相同的位置,其他所有内容都保留为NaN?将行和列值分配给特定位置的NaN矩阵

R C Value 
19 4 -1133.803 
20 4 -295.6810 
32 4 -1906.021 
20 5 -1027.048 
21 5 -293.0065 
32 5 236.0525 
33 5 -425.1248 

回答

2

使用sub2ind

data = [ 
    % R C Value 
    19 4 -1133.803 
    20 4 -295.6810 
    32 4 -1906.021 
    20 5 -1027.048 
    21 5 -293.0065 
    32 5 236.0525 
    33 5 -425.1248]; 
N = nan(155,135); 
N(sub2ind(size(N),data(:,1),data(:,2))) = data(:,3); 

所以,你得到的N(min(data(:,1)):max(data(:,1)),min(data(:,2)):max(data(:,2)))(即N(19:32,4:5)):

ans = 
     -1133.8   NaN 
     -295.68  -1027 
      NaN  -293.01 
      NaN   NaN 
      NaN   NaN 
      NaN   NaN 
      NaN   NaN 
      NaN   NaN 
      NaN   NaN 
      NaN   NaN 
      NaN   NaN 
      NaN   NaN 
      NaN   NaN 
     -1906  236.05 
      NaN  -425.12 
+0

完美!非常感谢! :) –

1

您可以使用accumarray

result = accumarray([R C] , Value,[155,135],[],NaN) 

注:RC假设列向量

+0

谢谢!有效。尽管我有1675个值来编写。 –