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

1 visualizzazione (ultimi 30 giorni)
Juncheng
Juncheng il 13 Mar 2019
Commentato: Juncheng il 18 Mar 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 Commenti
Shoumei
Shoumei il 13 Mar 2019
私の環境ではエラーは出ませんので、製品とは別にresample関数があるのでしょうか。
以下の実行結果を教えてもらえませんか?
which -all resample
Juncheng
Juncheng il 15 Mar 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関数はないようです。

Accedi per commentare.

Risposta accettata

Soya AOKI
Soya AOKI il 16 Mar 2019
Modificato: Soya AOKI il 16 Mar 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 Commento
Juncheng
Juncheng il 18 Mar 2019
ご回答ありがとうございました。
おっしゃる通りpathの設定の問題でした!しかし初期設定に戻しても何も変わりませんでしたが、以下のコードでemlのpathをフォルダー検索パスの末尾に追加しますと、問題を解決しました。
oldpath = path;
path(oldpath,'C:\Program Files\MATLAB\R2017a\toolbox\signal\eml')
ありがとうございました!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su 関数 in Help Center e File Exchange

Prodotti


Release

R2017a

Community Treasure Hunt

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

Start Hunting!