前提・実現したいこと
学校の課題で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/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。