Error message: matlab Variable "VARNAME" is inaccessible. When a variable appears on both sides of an assignment statement, the variable may become temporarily unavailable during processing.

1 回表示 (過去 30 日間)
My code looks something like this:
[inputObject,Container] = myfunction(inputObject,param1,param2,Container);
Container is a containers.Map object; I'm basically trying to use it as a hashtable.
Also, of note, myfunction is a recursive function call; there are calls to myfunction within myfunction.
So here's the problem. I am making several calls to myfunction in a row. I want Container to be available to the next function call as soon as the previous one has completed. However, when I try to evaluate "Container" in debug mode, I get the error given above. VARNAME in this case is Container.
Here's the weird part. If I make a line solely containing the word "Container", and then using "step" in debugger, step my way to that line (with a breakpoint on that line) I can finally get MATLAB to evaluate "Container". Then, this value becomes "available", and MATLAB finally starts passing it from function call to function call. But that ONLY happens AFTER I do this thing where I step my way to that line with a breakpoint on it.
So I think the issue is that Container isn't being "refreshed" in MATLAB's memory. I need a way to get it to do this. Any ideas?
  6 件のコメント
Walter Roberson
Walter Roberson 2017 年 9 月 4 日
shared variables are more efficient than globals.
Joshua Diamond
Joshua Diamond 2017 年 9 月 5 日
I found an excellent solution to the problem here, in the answer provided by Joan Puig.
Thank you!

サインインしてコメントする。

回答 (0 件)

カテゴリ

Help Center および File ExchangeScope Variables and Generate Names についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by