2016-10-27 62 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個值來編寫。 –