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,:)code

>> 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
相關文章
相關標籤/搜索