5 views (last 30 days)

Show older comments

I have a task where I have to calculate the area of a triangle from degrees 1 to 90, that is bound within a semi circle. I keep getting an error with the last line for some reason.

radius = rand;

a = 2*radius;

alpha = (1:90)

b = a * cosd(alpha(1:90));

area = 0.5*a*sind(1:90)

triangle= area*b

Image Analyst
on 16 Oct 2020

You need to be using .* instead of * to do an elemenet by element multiplication instead of a matrix multiplication. Try this:

radius = 2 * rand;

alpha = (1:90)

bases = radius * cosd(alpha) % A vector of 90 elements

heights = radius * sind(alpha) % A vector of 90 elements

triangle_areas = 0.5 * bases .* heights % A vector of 90 elements

% For optional fun, plot the area.

plot(alpha, triangle_areas, 'b.-', 'LineWidth', 2);

grid on;

xlabel('Angle', 'FontSize', 18);

ylabel('Area', 'FontSize', 18);

title('Triangle Area vs. Angle', 'FontSize', 18);

Image Analyst
on 17 Oct 2020

meghannmarie
on 16 Oct 2020

Edited: meghannmarie
on 16 Oct 2020

You need to use the dot operator if you are doing element wise multiplication (.*). You use just the asterick for matrix multiplication.

triangle= area.*b

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

Start Hunting!