Проблема с отображением строк - PullRequest
0 голосов
/ 13 февраля 2011

Эй, парень. Можете помочь мне в этом?

if size(cost,1) == 2

       A = (4*Pdt*cost(1,3)*cost(2,3)) + 2*(cost(1,2)*cost(2,3))+(cost(1,3)*cost(2,2));
       B = 2*(cost(2,3)+cost(1,3));
       lambda = num2str(A ./ B);
       set(handles.answer1_staticText,'String', lambda);
       P1 = (lambda - cost(1,2))./(2*cost(1,3));
       P2 = (lambda - cost(2,2))./(2*cost(2,3));
       PT = mat2str(P1 + P2);
       set(handles.answer2_staticText,'String', PT);
       guidata(hObject, handles);
end

Из приведенной выше кодировки ответ становится таким:

[11.75 11.25 11.25 11.75 10.75 11.5 12.75 12.75 13]

Мой вопрос: я хочу отобразить свой ответ в статическом текстовом поле, например:

P1 = (%answer for P1)

P2 = (%answer for P2)

P TOTAL = (%answer for PT)

Может кто-нибудь помочь мне с кодировкой?

1 Ответ

0 голосов
/ 13 февраля 2011

Вы преобразовали lambda в строку (используя num2str), и, таким образом, вычисление P1 и т. Д. Даст неожиданные результаты.

Лучше преобразовывать только строку в отображениешаг, чтобы эти несчастные случаи не произошли.

Попробуйте это:

if size(cost,1) == 2

       A = (4*Pdt*cost(1,3)*cost(2,3)) + 2*(cost(1,2)*cost(2,3))+(cost(1,3)*cost(2,2));
       B = 2*(cost(2,3)+cost(1,3));
       lambda = A ./ B;
       set(handles.answer1_staticText,'String', num2str(lambda));
       P1 = (lambda - cost(1,2))./(2*cost(1,3));
       P2 = (lambda - cost(2,2))./(2*cost(2,3));
       PT = P1 + P2;
       set(handles.answer2_staticText,'String', num2str(PT));
       guidata(hObject, handles);
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...