about summary refs log tree commit diff
path: root/sourcecodes/bnt-master/KPMtools/assign_cols.m
blob: 84cc9199b3a8613593df8aad3d5a416fb066251f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function M = assign_cols(cols, vals, M)
% ASSIGN_COLS Assign values to columns of a matrix
% function M = assign_cols(M, cols, vals, M)
%
% Example:
% M = assign_cols(data, ones(1,N))
% will construct a 1-of-K encoding of the data, where K=ncols=max(data) and N=nrows=length(data)
%
% Example:
% M = zeros(3,2);
% M = assign_cols([1 2 1], [10 20 30], M)
% is equivalent to
% M(1, 1) = 10
% M(2, 2) = 20
% M(3, 1) = 30
%

if nargin < 3
  nr = length(cols);
  nc = max(cols);
  M = zeros(nr, nc);
else
  [nr nc] = size(M);
end

if 0
for r=1:nr
  M(r, cols(r)) = vals(r);
end
end

if 1
rows = 1:nr;
ndx = subv2ind([nr nc], [rows(:) cols(:)]);
M(ndx) = vals;
end