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

関数’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

Shoumei
Shoumei 2019년 3월 13일
私の環境ではエラーは出ませんので、製品とは別にresample関数があるのでしょうか。
以下の実行結果を教えてもらえませんか?
which -all resample
Juncheng
Juncheng 2019년 3월 15일
コメントしていただき、ありがとうございます。
実行結果は以下になります。
>> 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関数はないようです。

댓글을 달려면 로그인하십시오.

 채택된 답변

Soya AOKI
Soya AOKI 2019년 3월 16일
편집: Soya AOKI 2019년 3월 16일

1 개 추천

こんばんは。
エラーを拝見すると
関数または変数'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

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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 関数에 대해 자세히 알아보기

제품

릴리스

R2017a

질문:

2019년 3월 13일

댓글:

2019년 3월 18일

Community Treasure Hunt

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

Start Hunting!