2016-09-05 10 views
1

私の質問を見てくれてありがとう。日付をインポートするMATLAB xlsread関数

xlsxファイルをMATLAB R2016a(Mac OS X)にインポートする、特に日付をインポートするのに特有の問題があります。

以下のコードを使用して、xlsxファイル 'bank_statements.xlsx'のワークシート '過去'から銀行口座の履歴をインポートしています。日付がdd/mm/yyyy形式の列1のスニペットも含まれています。

[ndata, text, data] = xlsread('bank_statements.xlsx','Past'); 

Column 1 dates in dd/mm/yyyy format

私の理解では、「NDATAは」はセル配列で、それぞれながら、MATLABは、これらは「テキスト」と「データ」の配列で表現された状態で、テキストと数値データを区別するためにフィルタを使用していることですすべて含まれています。以前は、MATLAB 2015a(Windows)でスクリプトを実行すると、列1の日付は文字列として扱われ、テキスト配列のMATLAB 2016a(Mac OS X)列1では空白になりました。これは、xlsread関数が日付情報をどのように解釈するかについての更新が行われたためです。

ここには奇妙な部分があります。変数ウィンドウでテキスト配列を検査し、コマンドウィンドウで参照すると空白になるテキスト(2,1)が表示されますが、この空のセルでdatenum関数を実行すると、番号付きの形式で日付が正しく入力されます。

enter image description here

ndata配列を使ってこの問題を解決することはできますが(上記のことが私には間違っているという事実を無視して)、私は実際に何が起きているのかを理解したいと思います。操作を実行できる情報を保持している。

敬具、

ジム

答えて

0

私はあなたの問題を再現することができたと私は何が起こっているかの複雑さを答えることができないが、私は提案を提供することができます。私は日付以外の文字列を変換しているときにしかそれを複製できませんでした。これにより、データのインポート方法に問題があると私は信じています。

の代わりに:

[ndata,text,data] = xlsread('bank_statements.xlsx','Past'); 

あなたはそれを持っている場合、多分何ではないおそらくすなわち

[ndata,text,data] = xlsread('bank_statements.xlsx','Past','A2:A100','',@convertSpreadsheetDates); 

、インポートする値の範囲と一緒に、試してみて、@convertSpreadsheetDates機能を追加探しているが、それは助けるかもしれない!

関連する問題