how can i make this function work with arrays?

i have this function which works great but whenever i input an array it says "matrix dimensions must agree"
function [f]=colebrook(R,k)
f=fzero(@(f) 1/sqrt(f)+2*log10(k/3.7+2.51/(R*sqrt(f))),[1e-18,1]);
end
what can i edit to make it work with arrays?

1 Comment

Use the "dot" math operators for * and / for element-by-element operation instead of matrix.
See section on "Array vs Matrix Operations" in documentation or type
doc mtimes
doc rdivide

Sign in to comment.

Answers (1)

Elementwise operation:
...
f=fzero(@(f) 1./sqrt(f)+2*log10(k/3.7+2.51./(R*sqrt(f))),[1e-18,1]);
...

Products

Asked:

on 10 Jun 2021

Commented:

dpb
on 10 Jun 2021

Community Treasure Hunt

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

Start Hunting!