あなたのようなセル配列にこの行列を変換することができます:
B
があなたの元の行列である
Bs = mat2cell(B,repelem(3,size(B,1)/3),repelem(2,size(B,2)/2));
。あなたはあなたの行列にそれを比較することができますので、同じように点字コードを準備する必要があり
:Bs
以上
letters = {'p',[0 0;0 1;0 1];'r',[0 1;0 0;0 1]}; % ...and so on for all letters
その後のことができますループ:
txt = char(zeros(size(Bs))); % the result
for k = 1:numel(Bs)
for l = 1:size(letters,1)
if isequal(Bs{k},letters{l,2})
txt(k) = letters{l,1};
break
end
end
end
そしてここにもう一つありますマトリックス配列をセル配列に変換せずに、次のオプションを使用します。
BB = reshape(reshape(B,3,[]),3,2,[]);
txt = char(zeros(size(B,1)/3,size(B,2)/2)); % the result
for k = 1:size(BB,3)
for l = 1:size(letters,1)
if isequal(BB(:,:,k),letters{l,2})
txt(k) = letters{l,1};
break
end
end
end
Thi特にデータがたくさんある場合は、高速化する必要があります。
ありがとう、それは私が欲しかったものです! – Vitali