MATLAB小函数:将列向量转化为0-1矩阵

作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

将列向量转化为0-1矩阵,例如

A =

     1
     2
     1
     5
     3
     4
     1
     4
     3
转换为:
B =

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

1. MATLAB程序

function B=trans_logic(A)
% 将列向量转化为0-1矩阵
% A=[1;2;1;5;3;4;1;4;3];
num=size(A);
for i=1:num
    B(i, A(i))=1;
end

2. 结果

>> A=[1;2;1;5;3;4;1;4;3];
>> B=trans_logic(A)

B =

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

2019-11-13

01-02 07:16