Plotting log functions in App designer

Hi there,
I am trying to create a radar app from scratch using functions that are tested okay in Matlab, when i run the codes in appdesigner, the graph does not show. Kindly help. Thanks.
Codes are :
tsc = app.TscansEditField.Value;
Tsc = 10*log10(tsc); % convert Tsc into log equiv
sigma_a = app.AircraftRCSdBsmEditField.Value;
sigma_m = app.MissileRCSdBsmEditField.Value;
% four_pi = 10*log10(4.0 * pi); % (4pi) in dB
k_db = 10*log10(1.38e-23); % Boltzman's constant in dB equiv.
te = app.EffectiveTemperatureKEditField.Value;
Te = 10*log10(te); % noise temp. in dB
% range_a = app.RangeaKmEditField.Value;
% range_adb = 10*log10(range_a* 1000.); % target range^4 in dB
% range_m = app.RangemKmEditField.Value;
% range_mdb = 10*log10(range_m* 1000.); % target range^4 in dB
az_anglea = app.AzimuthangledegEditField.Value;
el_anglea = app.ElevationangledegEditField.Value;
rloss = app.RadarLossdBEditField.Value;
snr = app.SNRdBEditField.Value;
nf = app.NoiseFiguredBEditField.Value;
factor = 10*log10(4*pi);
% Compute Omega in steradians
omega = (az_anglea / 57.296) * (el_anglea /57.296);
omega_db = 10.0*log10(omega); % Convert Omega to dBs
% Plot Power aperture product for missile and aircraft
rangevar = linspace (2,90,1);
rangedb = 10*log10(rangevar);
papm = snr - sigma_m - Tsc + factor + 4.0 .* rangedb + k_db + Te + nf + rloss + omega_db;
papa = snr - sigma_a - Tsc + factor + 4.0 .* rangedb + k_db + Te + nf + rloss + omega_db;
plot(app.UIAxes4,rangevar,papm,"g")
hold (app.UIAxes4, 'on' )
plot(app.UIAxes4,rangevar,papa, "r")
hold (app.UIAxes4, 'off' )

2 件のコメント

Walter Roberson
Walter Roberson 2022 年 7 月 26 日
it would help to know values for TscansEditField and the other two
Bumze
Bumze 2022 年 7 月 26 日
編集済み: Bumze 2022 年 7 月 27 日
Thank you for the response.
These codes off the text works perfectly in Matlab.
I have developed the app to compute the power aperture product values but the graph. Thanks

サインインしてコメントする。

 採用された回答

Cris LaPierre
Cris LaPierre 2022 年 7 月 26 日
編集済み: Cris LaPierre 2022 年 7 月 26 日

0 投票

It looks like you tried to replace the for loop with an elementwise multiplication. However, your syntax for rangevar is only returning a single value. Therefore, the resulting calculation is a single value. Because the plot function does not include a marker style by default, when you plat a single point, it is not visible.
With linspace, you need to specify the number of points you want as the 3rd input. If you instead want to define the increment, stick with the colon operator.
rangevar = 2:90;
% or
rangevar = linspace(2,90,89);

5 件のコメント

Bumze
Bumze 2022 年 7 月 26 日
Thanks . I have corrected the linspace error but still have no graph plotted. I also used the for loop , no graph as well.
Cris LaPierre
Cris LaPierre 2022 年 7 月 26 日
編集済み: Cris LaPierre 2022 年 7 月 26 日
I mocked up your app using the info you provided. Works for me. Can you confirm that your axes are, in fact, named UIAxes4?
My app does not use a for loop, but did create rangevar using one of the approaches in my answer (same result using either approach).
Bumze
Bumze 2022 年 7 月 27 日
編集済み: Bumze 2022 年 7 月 27 日
@Cris, your result is what I expected. The axes is indeed UIaxes4, was it only the rangevar that was changed to get your graph or you changed any other line? Thanks so much.
Bumze
Bumze 2022 年 7 月 27 日
Thanks Cris, Mathworks team. I did it all over and got the right results.
Cris LaPierre
Cris LaPierre 2022 年 7 月 27 日
Glad to hear. I did have to build the entire app, but the only thing I changed in the code you shared was rangevar.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangePolar Plots についてさらに検索

製品

リリース

R2022a

質問済み:

2022 年 7 月 26 日

コメント済み:

2022 年 7 月 27 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by