質問: rescale(ref); % )で下記のようにエラーが出てしまいます. ” 関数 'rescale' (タイプ'double' の入力引数) が未定義です。 ” 原因として,1使用している関数が、matlabの検索パス上にないディレクトリに移動されたこと.2ライセンスに含まれない機能を使用しようとしている ことを疑い,パスの確認と関数がフォルダ上に存在していることを確認しました. matlabのヘルプセンターにてrescale関数の説明を読んだところ,rescale関数は2017のmatlabから追加されたことが参考欄に記載されておりました. matlabのバージョンが古いためにプログラムが実行できないのではないかと考えております. つきましては,matlab2016bにおいて,rescale関数と同等の働きをする関数か,2016bにおいてrescale関数を動作させる方法をご教授いただけないかと思います. 初歩的な質問で大変申し訳ございませんが,どなたか力を貸して頂けると幸いです.よろしくお願い致します.
回答: 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も添付します。また望むような結果が得られるか確認していただけると幸いです。よろしくお願いいたします。