0

Excelで使用される日付パターンであるMATLABで知りたいです。これは、MATLAB から Excel ファイルを読み取ったためですが、ユーザー コンピューターによっては、日付が dd-mm-yyyy または mm-dd-yyyy として表されます。

明確化: 私の悪い説明で申し訳ありません。これが私のシナリオです。日付 (およびその他の列、この問題には関係ありません) を含む Excel ファイルがあります。matlab アプリケーションを実行する必要がある 2 台のコンピューターがあります。(MATLAB で) xlsread を使用する最初のものでは、コンピューターの地域構成により、日付が dd-mm-yyyy 形式で表示されます。2 番目の例では、同じ MatLab バージョンで同じファイルを読み取りましたが、読み取った日付は mm-dd-yyyy 形式になっています (これも、コンピューター 2 の地域構成がコンピューター 1 とは異なるためです)。

ここで、datenum を日付変換に使用しようとすると、formatIn パラメータを正しい方法で使用できません。formatIn を mm-dd-yyyy に指定すると、これはコンピュータ 1 では正しく動作しますが、コンピュータ 2 では動作しません。およびその逆。

そのため、formatIn の正しい入力パラメーターを見つけるために、コンピューターの Excel で使用される日付パターンを MATLAB で特定する必要があると思います。

4

5 に答える 5

1

データをよく理解していなければ、これを行うことは不可能です。たとえば、20XX 年 1 月 7 日の年間測定値がある場合、それが 1 月 7 日か 7 月 1 日かを知ることは不可能です。

ただし、次のことを試すことができます。

MyString='01-23-2012';
FirstTwo=str2num(MyString(1:2));
if(FirstTwo>12)
    display('DD/MM');
else
    display('MM/DD');
end

日付の最初の 2 桁が 12 より大きい場合、おそらく DD/MM/YYYY であると結論付けることができます。これをすべての日付でループできます。

于 2013-06-21T20:19:24.243 に答える
1

実際の .xls ファイルについて話している場合、この種のフラグがあるかどうかはわかりませんが、ヒューリスティックなアプローチの 1 つ (そしておそらく CSV 形式での唯一のアプローチ) は、 12 より大きい数値の場合。そのような数値は月に対応できないため、使用している形式がすぐにわかります。もちろん、小さなデータ セットでは、これは信頼できません (厳密には、完全に信頼できるわけではありませんが、自明でないデータでは、うまくいく可能性が高くなります)。

于 2013-06-21T20:20:57.523 に答える
0

私はあなたの質問にちょっと混乱しています。MATLAB と Excel の両方が mm-dd と dd-mm を簡単にサポートできます。Excel では、デフォルトは居住地によって異なります。アメリカでは mm-dd になり、ヨーロッパ (およびおそらく世界のほとんどの国) では dd-mm になります。

MATLAB では、Excel のように場所に依存するかどうかはわかりません。アメリカ人として、標準はもちろん mm-dd ですが、matlab が日付文字列を解析する方法を完全にカスタマイズできます。

http://www.mathworks.com/help/matlab/ref/datenum.htmlを確認してから、入力引数に移動し、次に「formatIn」に移動します。日付を読み込んで日付に変換する方法のリストが表示されます。シリアル日付番号。(または必要に応じてベクトル)

編集:

気にしないでください、私はあなたの質問を誤解しました

于 2013-06-21T20:20:46.717 に答える