2

同じ MATLAB コードと同じ Excel ファイル (.csv 形式) を持つ 2 台のコンピューターがあります。このコードは、Excel がインストールされているマシンでのみ機能します。他の違いは思いつきません。

コンピューターで xlsread が機能するには Excel が必要ですか? 表示されるエラーは、認識できない形式です。

この場合、Excel を入手せずに簡単な回避策はありますか?

編集:Excelは必要ないようです。おそらく問題は、ファイルが .csv であることですか? やっぱりフォーマットエラーです。同じ形式のファイルが他のコンピューターで機能した理由がわかりません。

解決済み: .csv ファイルが問題でした。.csv ファイルの読み取りでは、matlab の importdata() 関数が非常に用途が広いことが証明されました。

4

3 に答える 3

6

このページによると

システムに Excel® for Windows® がインストールされており、COM サーバー (Excel の標準インストールの一部) が含まれている場合:

すべての MATLAB® インポート オプションは、XLS、XLSX、XLSB、XLSM、XLTM、および XLTX 形式をサポートしています。

...

システムに Excel for Windows がインストールされていない場合、または COM サーバーが利用できない場合:

すべての MATLAB インポート オプションは、XLS、XLSX、XLSM、XLTM、および XLTX ファイルを読み取ります。

ただし、コンマ区切りの ASCII ファイルをインポートしようとしているだけでは、xlsreadやり過ぎで非常に遅くなります。データが純粋な数値である場合は、csvreadまたはを使用しますdlmread。データが混在している場合は、textscan代わりに使用してください。

于 2015-07-20T13:37:11.743 に答える
3

xlsread(filename,sheet,xlRange,'basic')マシンに Excel がインストールされていなくても機能します。

その他の追加の引数では、Excel をインストールする必要があります。

ただし、Matlab は文字区切りのファイルをネイティブにインポートできます。

于 2015-07-20T13:31:33.437 に答える
2

Excelのないパソコンで使っxlsreadたことがないので、よくわかりません。しかし、ドキュメントによると、 Excel は必要ありません。一部の機能のみが失われます。

num = xlsread(filename,sheet,xlRange,'basic')基本インポート モードでスプレッドシートからデータを読み取ります。お使いのコンピューターに Excel for Windows® がインストールされていない場合、 は、XLS、XLSX、XLSM、XLTX、および XLTM ファイルをサポートするインポート モードでxlsread自動的に動作します。basic

basicモードは、Excel for Windows がインストールされていないコンピューターの既定です。基本モードでは、xlsread次のようになります。

  • XLS、XLSX、XLSM、XLTX、および XLTM ファイルのみを読み取ります。

  • xlRangeXLS ファイルの読み込み時の入力はサポートしていません。この場合、''の代わりに使用しxlRangeます。

  • 関数ハンドル入力をサポートしません。

  • すべての日付を Excel シリアル日付番号としてインポートします。Excel シリアル日付番号は、MATLAB® 日付番号とは異なる参照日付を使用します。

したがって、おそらく問題は、モードxlsreadでサポートされていないいくつかのオプションで呼び出していることです。basic

于 2015-07-20T13:30:51.530 に答える