MATLAB Answers

関数'rescale​'が実行できずに困っ​ています.

2 views (last 30 days)
Keishi Chiba
Keishi Chiba on 11 Jun 2020
Commented: 啓史 千葉 on 19 Jun 2020
タイトルの通りの悩みなのですが,’rescale’という関数が実行できずに困っております.
当方のMatlabのバージョンは2016bです.
他人から頂いたMatlabプログラムを実行しようとしたのですが,'rescale'の関数を実行する行(X_Ref = rescale(Ref); % )で下記のようにエラーが出てしまいます.
” 関数 'rescale' (タイプ'double' の入力引数) が未定義です。 ”
原因として,①使用している関数が、MATLABの検索パス上にないディレクトリに移動されたこと.②ライセンスに含まれない機能を使用しようとしている ことを疑い,パスの確認と関数がフォルダ上に存在していることを確認しました.
Matlabのヘルプセンターにてrescale関数の説明を読んだところ,rescale関数は2017のMatlabから追加されたことが参考欄に記載されておりました.
Matlabのバージョンが古いためにプログラムが実行できないのではないかと考えております.
つきましては,Matlab2016bにおいて,rescale関数と同等の働きをする関数か,2016bにおいてrescale関数を動作させる方法をご教授いただけないかと思います.
初歩的な質問で大変申し訳ございませんが,どなたか力を貸して頂けると幸いです.よろしくお願い致します.

  0 Comments

Sign in to comment.

Accepted Answer

Kenta
Kenta on 14 Jun 2020
function out=rescale(input)
MaxValue=max(input);
MinValue=min(input);
out=(input-MinValue)./(MaxValue-MinValue);
end
こんにちは、おそらく私もバージョンが理由だと思います。関数rescaleが未定義です、ということは、その関数自体が入っていないということでしょう。仰るような他の要因だと、また別のエラー文がでる気がします。
A = 1:5;
B = rescale(A)
シンプルなmax-min標準化であれば上のfunctionからendまでをrescale.mとして保存し、うえのコードを実行すれば本来返すべき値とおなじものを確認できました。ただ、詳細な設定をしたければ追加で書き加える必要があります。一応、rescale.mも添付します。また望むような結果が得られるか確認していただけると幸いです。よろしくお願いいたします。

  1 Comment

啓史 千葉
啓史 千葉 on 19 Jun 2020
ありがとうございます。やはりバージョンが原因で動作しませんでした。
2020年版のMatlabの体験版をダウンロードして再トライしたら動きました。助言ありがとうございます。

Sign in to comment.

More Answers (0)

Tags