Matlabは混合コンテンツのセルから数値を抽出します


0

読み取りが必要なExcelシートからのさまざまなデータ型のセル配列がありますが、それは制御できません。

[~, ~, raw] = xlsread(xlsFile)

rawはr行c列のセルベクトルになりました。簡単にするために、行が1つだけであると仮定します。数値(正確にはdatenumを超える)または[NaN]や ''などの他の値で埋められます。したがって、cell2mat()は機能しません。

数値のみを抽出する最良の方法は何ですか?セルに数値が含まれるインデックスを取得する方法はありますか?

ありがとう。

回答:


0

単一の行のみを想定して、以下は非数値を除去するために機能します

rawData = {5,1.77,NaN,''};
rawDataIsNum = cell2mat(cellfun(@isnumeric,rawData,'UniformOutput',false)); %Returns matrix of true/false if real number or NaN
data = rawData(rawDataIsNum); %Returns cell of numbers

NaNを削除するには、@ isnanと同様のものを使用できます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.