Why do I get the error "Identifier 'D' is not a function or a shared variable. To share 'D' with nested function, initialize it in the current scope"?

20 views (last 30 days)
I got this matlab toolbox called WAFO (Wave Analysis for Fatigue and Oceanography) and when I try to use one of their function files (see attached file), I get the following error:
"Identifier 'D' is not a function or a shared variable. To share 'D' with nested function, initialize it in the current scope. For more information, see Sharing Variables Between Parent and Nested Functions."
I checked this document but I could not resolve the issue. I would highly appreciate if anyone could use this function file with the inputs stated in the comments in the file and help me solve this problem. (I know it's a fairly long file but the error is to do with only 1 variable).
  4 Comments
tng
tng on 29 Mar 2021
Edited: tng on 29 Mar 2021
@Keith Adams Yeah, I basically edited line 141 and wrote this:
[u,D] = computeU();
It used to output only u. In addition to this, I edited a nested function (line 203) with the following line:
function [u,D] = computeU()
Hope this helps. Also if you are using WAFO like me, I cannot guarantee this is what the person who created this toolbox intended to do. But it seems to be working and I get their results (I think).

Sign in to comment.

Accepted Answer

Keith Adams
Keith Adams on 29 Mar 2021
I resolved this issue by defining D in the main cssmooth function ...
Hope this helps

More Answers (0)

Categories

Find more on Oceanography and Hydrology 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!