How to display result in Text Area in Matlab Appdesigner
조회 수: 208 (최근 30일)
이전 댓글 표시
Hi, I have a problem here where I could not display my result of the equation in the text area.
Below is the code.
The app.EIRP.Value is the text area.
pt = app.ouputpower.Value;
lbo = app.backoffloss.Value;
lbf = app.eartbranchingloss.Value;
at = app.antennagain.Value;
lu = app.uplinkloss.Value;
lp = app.pathloss.Value;
gte = app.gteratio.Value;
bfb = app.satbranchingloss.Value;
br = app.bitrate.Value;
app.EIRP2 = pt+at-lbo-lbf;
app.EIRP.Value = num2str(eval(app.EIRP2));
댓글 수: 1
Zain Ul Abidin
2021년 4월 25일
이동: Adam Danz
2022년 11월 23일
How Can I add nultiple line in a single text area using differnt sprint commands
채택된 답변
Adam Danz
2019년 12월 9일
편집: Adam Danz
2019년 12월 9일
It's unclear whether you're working with numeric or text values. App designer has edit fields that return text and edit fields that return numeric values.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/253652/image.png)
If you're working with text edit fields that contain numeric characters such as '42', you must convert them to numeric, do the math, then convert the result back to character (or string). Consider replacing the text edit fields with numeric edit fields
pt = str2double(app.ouputpower.Value); % converts from string/char to double
app.EIRP.Value = num2str(app.EIRP2); % converts from numeric to char
% -or -
app.EIRP.Value = sprintf('%.3f',app.EIRP2); % converts from numeric to char
% No need for eval (Ever)
If you're working with numeric edit fields there is no need to do any conversion.
pt = app.ouputpower.Value;
app.EIRP.Value = app.EIRP2;
댓글 수: 4
Malu
2020년 8월 5일
편집: Adam Danz
2020년 8월 5일
Hello,
as I am not much familiar with App Designer, I would ask for your help regarding a similar issue.
I have a button with a callback function, where I am doing my calculations. In the end I have some results I would like to display in the TexEdit Field.
avgDiff = mean(diff(timestamp')); %checking the acquisiton rate
fprintf('The average timestamp diff is %.3f\n', avgDiff)
Sync_rate = (S/5) * 100 ;
fprintf('The synchronization rate is: %.2f\n', Sync_rate )
How can I write in the end of the function that it displays these values?
app.status(end+1,1) = {'Sync rate is... and then to display : "Avg timestamp diff is"'};
set(app.StatusWindowTextArea,'Value',app.status)
set(app.StatusColour,'Background',[0 1 0])
end
pause(1)
Thank you in advance!
추가 답변 (2개)
Bill Llach
2022년 4월 16일
편집: Bill Llach
2022년 4월 16일
if you have a complex number vector just use:
evalc('anything')
Example:
someArray = [1 2 1 2];
theThingYouWantToShow = roots(someArray);
%theThingYouWantToShow is a vector with complex numbers (if you can show this, you can show anything :) (I guess) )
app.SomeTextArea.Value = evalc('theThingYouWantToShow');
참고 항목
카테고리
Help Center 및 File Exchange에서 Characters and Strings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!