MATLAB--巧妙运用逻辑数组

测试数据:

>> yv = magic(4)
yv =

16     2     3    13
 5    11    10     8
 9     7     6    12
 4    14    15     1

>> y = [3;4;2;1]

y =

 3
 4
 2
 1

style 1

yv=[1:num_labels] == y

>> yv = [1:4] == y

yv =

4×4 logical 数组

0   0   1   0
0   0   0   1
0   1   0   0
1   0   0   0

style 2

yv = zeros(m, num_labels);
for i = 1:m
yv(i, y(i)) = 1;
end

>> yv = zeros(4,4)

yv =

     0     0     0     0
     0     0     0     0
     0     0     0     0
     0     0     0     0

>> for i = 1:4
yv(i, y(i)) = 1;
end

>> yv
     
yv =
     
    0     0     1     0
    0     0     0     1
    0     1     0     0
    1     0     0     0



style 3

all_combos = eye(num_labels);
y_matrix = all_combos(y,:)

>> all_combos = eye(4);
>> y_matrix = all_combos(y,:) 

y_matrix =

     0     0     1     0
     0     0     0     1
     0     1     0     0
     1     0     0     0
posted @ 2017-11-14 18:37  学会思考の小R  阅读(1018)  评论(0编辑  收藏  举报