前提・実現したいこと
座標を代入して近似円の中心座標を算出するプログラムを書いています。そこで複数の座標をinput(prompt)を使って代数として入れたいのですが、うまくいきません。この関数に座標を入れるやり方がわからないので、XとYを分けたプログラムを書いたのですがダメでした。どなたか解決策を教えてください。
発生している問題・エラーメッセージ
What is the original value of X? 10 配列インデックスは正の整数または logical 値でなければなりません。 エラー: hafu (行 9) Xd(i) = input(prompt);
該当のソースコード
MATLAB
試したこと
prompt = 'What is the original value of X? ';
k=0;
while k==0 %キーボードを打って終了させる%
Xd(i) = input(prompt); %dataの取得 if i>=3 k=waitforbuttonpress; end end
prompt = 'What is the original value of Y? ';
k=0;
while k==0 %キーボードを打って終了させる%
Yd(i) = input(prompt); %dataの取得 if i>=3 k=waitforbuttonpress; end end
fit_circle(Xd,Yd);
上記のプログラムで、エラーが発生してしまいます。この最後のfit_circle(Xd,Yd)のXd、Ydにどうにか数値を入力したいです。(数値は複数必要)
補足情報(FW/ツールのバージョンなど)
一番最初にXd(i)=input(prompt);が実行されるとき、i はいくつですか?
恐らく1だと思いますが、詳しくはわかっていません。
Xd=[];
Yd=[];
% [Xd, Yd] = imfindcircles(handles.Img,[30 36],'ObjectPolarity','bright', ...
% 'Sensitivity',0.98)
% h = viscircles(Xd,Yd);
k=0;
while k==0 %キーボードを打って終了させる%
i=length(Xd)+1;
%%%%%%%%%%%%%%%
%dataの打点開始
%%%%%%%%%%%%%%%
[Xd(i), Yd(i)] = ginput(1); %dataの取得
h(i) = plot(Xd(i), Yd(i), 'cd', 'LineWidth', Na);%打点のplot
if i>=8
k=waitforbuttonpress;
end
end
元々は上記のプログラムで、イメージに点を自分で打ち、その座標を使って計算するものだったのを、座標を自分で打ち込みたいと思っております。
回答1件
あなたの回答
tips
プレビュー