필터 지우기
필터 지우기

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

조회 수: 2 (최근 30일)
Juncheng
Juncheng 2019년 3월 13일
댓글: Juncheng 2019년 3월 18일
関数’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일
こんばんは。
エラーを拝見すると
関数または変数'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개)

카테고리

Help CenterFile Exchange에서 関数에 대해 자세히 알아보기

제품


릴리스

R2017a

Community Treasure Hunt

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

Start Hunting!