インデックスが1:n
よう命じている場合(または任意の他の順序を知っている)、あなたは、この使用することができます:
fileID = fopen('bin16.txt');
raw = fscanf(fileID,'%s');
fclose(fileID);
colon_ind = strfind(raw,'::');
data = table((1:numel(colon_ind)).',...
cell(numel(colon_ind),1),...
'VariableNames',{'Index','Pattern'});
counter = 1;
for k = colon_ind
data.Pattern(counter,:) = {raw(k+2:k+17)};
counter = counter+1;
end
をし、この取得:インデックス列があなたを注文されていない場合
data =
Index Pattern
_____ __________________
1 '0000000000000011'
2 '0000000000000101'
3 '0000000000001001'
4 '0000000000000110'
5 '0000000000010001'
6 '0000000000001010'
7 '0000000000000111'
8 '0000000000010010'
9 '0000000000001100'
10 '0000000000001011'
11 '0000000000100001'
12 '0000000000010100'
を
fileID = fopen('bin16b.txt','r');
raw = fscanf(fileID,'%s');
C = textscan(raw,'%s','delimiter','::');
fclose(fileID);
N = (size(C{1},1)-1)/2;
data = table(zeros(N,1),cell(N,1),...
'VariableNames',{'Index','Pattern'});
data.Index(1) = str2num(C{1}{1,1});
for k = 1:N
if k>1
data.Index(k) = str2num(C{1}{k*2-1,:}(17:end));
end
data.Pattern(k,:) = {C{1}{k*2+1,:}(1:16)};
end
入手するには(入力した任意のデータを使用):
Index Pattern
_____ __________________
54 '0000000000000011'
6 '0000000000000101'
3 '0000000000001001'
4 '0000000000000110'
5 '0000000000010001'
92 '0000000000001010'
7 '0000000000000111'
35 '0000000000010010'
9 '0000000000001100'
10 '0000000000001011'
11 '0000000000100001'
12 '0000000000010100'
EDIT
'::' ファイルには、あなたが使用することができ、前に削除することができる場合は、次の
text = load ('bin16b.txt', '-ascii');
data = table(text(:,1),text(:,2:end),...
'VariableNames',{'Index','Pattern'});
とget:
data =
Index Pattern
_____ _____________
54 [1x16 double]
6 [1x16 double]
3 [1x16 double]
4 [1x16 double]
5 [1x16 double]
92 [1x16 double]
7 [1x16 double]
35 [1x16 double]
9 [1x16 double]
10 [1x16 double]
11 [1x16 double]
12 [1x16 double]
パターン列の各セルは次のようになります。
>> data.Pattern(1,:)
ans =
Columns 1 through 14
0 0 0 0 0 0 0 0 0 0 0 0 0 0
Columns 15 through 16
1 1
第2列に16列のデータを収める方法はありますか? – Suever
これをテキストとして扱うか(たとえば、 '' 7 '' 0000000000000111 ')、セル配列や表を使用できます。 – EBH