質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

Q&A

1回答

1757閲覧

matlabでfminsearchを用いた時のエラー解消法を教えてください。

oguogu

総合スコア12

MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

0グッド

0クリップ

投稿2019/07/13 11:52

前提・実現したいこと

学校の課題でmatlabを使っているのですが、fminsearchにかけたところエラーメッセージが出てしまいます。プログラミングに詳しい友人に聞いたのですが原因がわかりません。教えてください。

発生している問題・エラーメッセージ

左辺のサイズが 1x1 で右辺のサイズが 357x1 であるため、代入を実行できません。 エラー: fminsearch (line 200) fv(:,1) = funfcn(x,varargin{:}); エラー: automobile (line 18) fminsearch(@gap,[0 0 0 0])

該当のソースコード

Matlab

1clear 2data=csvread('JapanAutomobile.csv',1); 3 4global price HorsePower width Constant y 5 6price=data(:,4); 7HorsePower=data(:,6); 8width=data(:,9); 9 10NumCars=size(data,1); 11Constant=ones(NumCars,1); 12sj=data(:,3)./data(:,11); 13TotalSales=sum(data(:,3)); 14s0=(data(:,11)-TotalSales*ones(NumCars,1))./data(:,11); 15 16y=log(sj)-log(s0); 17 18fminsearch(@gap,[0 0 0 0]) 19 20ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 21 22function[obj]=gap(beta) 23 24global price HorsePower width Constant y 25 26x=y-(beta(1)*Constant+beta(2)*HorsePower+beta(3)*width-beta(4)*price); 27 28obj=x.^2; 29

試したこと

function内のx=の式がいけないのかと思い、yのサイズを確認しましたが、ワークスペースに357×1と表示されていました。読み込んだcsvファイルに欠陥があるのかと思い確認しましたが、直すべき部分は見当たりませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

fminsearchはスカラー関数に対する最小化問題のためのソルバーです。
obj = sum(x.^2)に変更するなりして、スカラー関数にする必要があります。

投稿2019/08/30 10:14

WathMorks

総合スコア1582

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問