2012-03-05 9 views
0

私は初心者です。私は質問したい、どのように編集テキストを行列に入れるか?たとえば、数字0〜1で塗りつぶす30の編集テキストがあります。編集テキストの入力からx(1,1)、... x(1,30)という行列を作成したいとします。テキスト入力をMATLABのマトリックスに入力する

私はこのコードを試してみました:

function edit30_Callback(hObject, eventdata, handles) 

% hObject handle to edit30 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

% Hints: get(hObject,'String') returns contents of edit30 as text 
% str2double(get(hObject,'String')) returns contents of edit30 as a double 

x(1, 30) = str2double(get(hObject,'string')) 

しかし、このようなコマンドウィンドウのショー...

x = 

    1 

x = 

    0 0 

x = 

    0 0 0 

x = 

     0 0 0 0.2500 

x = 

     0 0 0 0 0.5000 

x = 

    0 0 0 0 0 0 

が、実際に私....まで

function edit1_Callback(hObject, eventdata, handles) 

% hObject handle to edit1 (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

% Hints: get(hObject,'String') returns contents of edit1 as text 
% str2double(get(hObject,'String')) returns contents of edit1 as a double 

x(1, 1) = str2double(get(hObject,'string')) 

結果が行列であるようにしたい、

1 0 0 0.25 0.5 0 

誰もこの問題を解決する方法を知っていますか?

答えて

0

問題は機能範囲です。各コールバック関数は独自のスコープでxを定義しているので、関数が終了すると(xの値をコンソールに表示すると)xがなくなります。

構造を使用して、関数間でx変数を渡すことも1つの方法です。 xの代わりにhandles.xを使用してください。また、GUIの初期化時にこの行列をhandles.x = zeros(1,30);として初期化することをお勧めします。

+0

あなたの答えはおかげです。 私はそのようにしなければならないが、うまくいかない。 コーディングについてもっと詳しく説明できますか? 私は本当にそれについて全く知らない。 編集テキスト入力をマトリックスに入れることは可能ですか? –

関連する問題