関数または変数'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 Center および File Exchange関数 についてさらに検索

製品


リリース

R2017a

Community Treasure Hunt

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

Start Hunting!