Replacing values in an array over a certain value

1 view (last 30 days)
I am currently writing a piece of software that will calculate solar radiation on a vertical plane. I currently have a 1x49 array, containing values for my incident angle, however some of these values are greater than 90, and i wish to minus 180 from them. How do i go about doing that? I have attached my code below.
angleIncidence = acosd((sind(angleDeclin).*sind(lat - tilt))+(cosd(angleDeclin).*cosd(lat-tilt).*cosd(w)));
if angleIncidence > 90
angleIncidence = 180 - angleIncidence;
end
I have also tried:
angleIncidence(angleIncidence > 90) = 180 - angleIncidence

Accepted Answer

Walter Roberson
Walter Roberson on 14 Apr 2020
mask = angleIncidence > 90;
angleIncidence(mask) = 180 - angleIncidence(mask);

More Answers (1)

Cris LaPierre
Cris LaPierre on 14 Apr 2020
mod(ang+90,180)-90;

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!