Filter löschen
Filter löschen

関数または変数'eml_lib_assert 'が未定義です

7 Ansichten (letzte 30 Tage)
Juncheng
Juncheng am 13 Mär. 2019
Kommentiert: Juncheng am 18 Mär. 2019
関数’resample’を使うとき、”関数または変数'eml_lib_assert 'が未定義です”というエラーが出ました。
ドキュメンテーションの中のresampleの例を試したところ、同じエラーが出ました。
コードは以下のとおりです。
fs = 10;
t1 = 0:1/fs:1;
x = t1;
y = resample(x,3,2);
t2 = (0:(length(y)-1))*2/(3*fs);
plot(t1,x,'*',t2,y,'o')
xlabel('Time (s)')
ylabel('Signal')
legend('Original','Resampled', ...
'Location','NorthWest')
エラーは以下
関数または変数'eml_lib_assert 'が未定義です。
エラー:resample(line12)
eml_lib_assert(nargin>=3,'signal:resample:notEnoughInputs','Not enough input arguments.');
  2 Kommentare
Shoumei
Shoumei am 13 Mär. 2019
私の環境ではエラーは出ませんので、製品とは別にresample関数があるのでしょうか。
以下の実行結果を教えてもらえませんか?
which -all resample
Juncheng
Juncheng am 15 Mär. 2019
コメントしていただき、ありがとうございます。
実行結果は以下になります。
>> which -all resample
C:\Program Files\MATLAB\R2017a\toolbox\signal\eml\resample.m
C:\Program Files\MATLAB\R2017a\toolbox\ident\ident\@iddata\resample.m % iddata method
C:\Program Files\MATLAB\R2017a\toolbox\matlab\timeseries\@tscollection\resample.m % tscollection method
C:\Program Files\MATLAB\R2017a\toolbox\matlab\timeseries\@timeseries\resample.m % timeseries method
C:\Program Files\MATLAB\R2017a\toolbox\signal\signal\resample.m % Shadowed
MATLAB以外のresample関数はないようです。

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Soya AOKI
Soya AOKI am 16 Mär. 2019
Bearbeitet: Soya AOKI am 16 Mär. 2019
こんばんは。
エラーを拝見すると
関数または変数'eml_lib_assert 'が未定義です。
エラー:resample(line12)
eml_lib_assert(nargin>=3,'signal:resample:notEnoughInputs','Not enough input arguments.');
となっておりresample関数の line12 でエラーが発生しているようですが、私の手元のsignal/resample.mでは12行目にこのコードはありませんでした。
他で似たような問題が報告されていました。(http://www.ilovematlab.cn/thread-310212-1-1.html
which -all resample
の結果とエラー内容から察するに、PATHの設定が原因の可能性があります。(eml下のresample関数が呼び出されている?これはCコードにコンパイルする際に使用する関数?Coderは詳しく無いので正確で無いかもしれません)
PATHの確認は以下でできます。
PATH
またPATHの設定は
rehash toolboxcache
で初期設定に戻せるようです。
PATH設定を再確認して頂けますか?
C:\Program Files\MATLAB\R2017a\toolbox\signal\signal\resample.m
C:\Program Files\MATLAB\R2017a\toolbox\ident\ident\@iddata\resample.m % iddata method
C:\Program Files\MATLAB\R2017a\toolbox\matlab\timeseries\@tscollection\resample.m % tscollection method
C:\Program Files\MATLAB\R2017a\toolbox\matlab\timeseries\@timeseries\resample.m % timeseries method
C:\Program Files\MATLAB\R2017a\toolbox\signal\eml\resample.m
のようにsignal下のresample関数が呼び出せるようになれば、解決できそうな気がします。
  1 Kommentar
Juncheng
Juncheng am 18 Mär. 2019
ご回答ありがとうございました。
おっしゃる通りpathの設定の問題でした!しかし初期設定に戻しても何も変わりませんでしたが、以下のコードでemlのpathをフォルダー検索パスの末尾に追加しますと、問題を解決しました。
oldpath = path;
path(oldpath,'C:\Program Files\MATLAB\R2017a\toolbox\signal\eml')
ありがとうございました!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu 関数 finden Sie in Help Center und File Exchange

Produkte


Version

R2017a

Community Treasure Hunt

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

Start Hunting!