MATLAB Answers

xlsread 数値文字混合 別処理

41 views (last 30 days)
Y.Suzuki
Y.Suzuki on 23 Feb 2018
Commented: jiro on 23 Feb 2018
数値と文字混合のエクセル表を読み込んで、要素が数値の処理1と、要素が文字であった場合の処理2を、行いたいです。D1=xlsread(filename)とした際、D1(i,m)の要素のデータ型の判別の方法と、処理2において、別のシートにそのまま(文字のまま)コピーするといった処理の方法を教えてください。

Answers (1)

jiro
jiro on 23 Feb 2018
Edited: jiro on 23 Feb 2018
ドキュメンテーションをご覧になっていただくと分かりますが xlsread は自動的に数値と文字を分けて読み込めるので、こんな感じでできるかと思います。
[num,txt] = xlsread('abc.xlsx');
xlswrite('abc.xlsx',txt,'Sheet2')
num は数値データしか含まないので(数値以外は NaN として格納される)、もし要素ごとに数値かどうかチェックする場合は、
if ~isnan(num(i,m))
% 処理
end
txt は文字情報のみを含むので、そのまま xlswrite で別のシートに書き出せます。
  2 Comments
jiro
jiro on 23 Feb 2018
お手数ですが、こちらで試せるサンプルのExcelファイル提供していただけますか?そのデータに対して具体的にどの要素をどう処理したい、などなるべく詳しく記述していただくと助かります。それに、試されたコードもここに追加して頂くと具体的にどこが問題かわかりやすいと思います。
データ型を確認するためには isa 関数が使えます。例えば、 data がセル配列の場合、i, j 要素が double かチェックするには
if isa(data{i,j},'double')
% 処理
end

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!