what is wrong with my function

here is the Question that I want to Answre:
(Write a function called tri_area that returns the area of a triangle with base b and height h, where b and h are input arguments of the function in that order.)
function area = tri_area(b,h)
area = b*h;
end

2 个评论

function area = tri_area(b, h)
area = (0.5*b*h)
end
the area of a triangle is 0.5*b*h not b*h

请先登录,再进行评论。

 采纳的回答

更多回答(3 个)

Stephan
Stephan 2019-2-25

0 个投票

You calculate the area of a rectangle. Think about the formula of triangle area...
function area= tri_area(b,h)
tri_area(b,h)= (0.5)*(b)*(h)
area= tri_area(b,h)
end

1 个评论

If b and h happen to be positive integers, then the assignment on the first line would work, creating an array that is b rows high and h columns, with all the values set to 0 except for the very bottom corner that would be set to (0.5)*(b)*(h) . You would then retrieve that location to create the output. This seems a bit of a waste to create that array.
If either b or h is not a positive integer, such as if b were 2.5 and h were 5, then the assignment on your second line would fail.
You have confused arrays and formulas. In MATLAB, you create formulas using @, such as
function area= tri_area(b,h)
TA = @(b,h) (0.5)*(b)*(h);
area = TA(b,h);
end

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

产品

版本

R2018b

标签

Community Treasure Hunt

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

Start Hunting!

Translated by