数字、日付、テキストを含む CSV ファイルがあります。テキストを含む列を抽出する必要があります。
たとえば、サンプル csv ファイルは次のようになります。
1-1-2000,1,2.3,TRUE
2-1-2000,1,2.3,FALSE
TRUE/FALSE 値を含む列を抽出したいと考えています。
TRUE を 1 に、FALSE を 0 に変換したい。
これを行うための関数とサンプルコードを提案してください
これを試すことができます:
[~,~,~,bools] = textread('filename.csv', '%s%d%f%s', 'delimiter', ',');
bools = cellfun(@strtrim, bool, 'uniformoutput', false);
bools = strcmp(bools, 'TRUE');
strtrim
末尾にスペースがないことが事前にわかっている場合は、 with の行は必要ないかもしれません。の行はstrcmp
、literal と文字列比較するすべてのエントリの論理配列を出力します。これは、他のすべてのエントリが falseTRUE
であることを意味します。意味:
1-1-2000,1,2.3,TRUE
2-1-2000,1,2.3,BANANAS
同じ論理ベクトルを生成します。文字列リテラルと明示的に比較したい場合は、次のFALSE
ように使用します。
a = NaN(size(bools));
a(strcmp(bools, 'TRUE')) = 1;
a(strcmp(bools, 'FALSE')) = 0;
if ~any(isnan(a))
bools = logical(a);
clear a
else
%# handle the error
end