Matlab editor: the function might be unused

조회 수: 90 (최근 30일)
Deerlin
Deerlin 2014년 10월 1일
댓글: Mustafa Akgül 2020년 12월 9일
Below is the body of my code.It keeps saying that func2 might be unused.I'm not sure how to fix this...
  댓글 수: 3
Walter Roberson
Walter Roberson 2017년 5월 16일
Chao Yin: that is not correct. You can define any number of functions in the same .m file, without them needing to refer to each other. You might not be able to execute any function other than the very first unless you make special arrangements, but it is valid to define them.
Mustafa Akgül
Mustafa Akgül 2020년 12월 9일
How can I define

댓글을 달려면 로그인하십시오.

채택된 답변

Julia
Julia 2014년 10월 1일
편집: Julia 2014년 10월 1일
Hi,
the easiest way is to make two files: one for func1 and one for func2. (I don't know if you can fix this problem using only one file.) In the file for func2 you have to add the Global-definition for G.
The file names must be the same as the function names.
  댓글 수: 3
Guillaume
Guillaume 2014년 10월 1일
It's clear to me from the wording of the question that func1 and func2 are in two different files.
There's no way in matlab to call func2 from the matlab prompt, if it's in the same file as func1. If func2 is defined within func1 file, only func1 would be able to call fun2 and as it's not the case, matlab rightly warns you it's not used.
Julia
Julia 2014년 10월 1일
편집: Julia 2014년 10월 1일
So you don't have to implement those functions, you have to understand how global variables work.
It is really not complicated:
func1 can manipulate the global variable G since G is defined as global in this function. Whereas in func2 G is only a local variable.
Post your guesses for a, b, and G here and we will be able to tell you if you understood the concept right.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Image Analyst
Image Analyst 2014년 10월 1일
func2 was never used, never called, in func1. You just assigned y to some equation, which happened to be similar (but not the same) equation as in func2. You never said
y=fun2(x)
anywhere in your main function, func1.
You also need the line
global G;
inside func2 if func2 is to use the same value of G that func1 had. If you do that, and have the G=50 line, then it will also become 50 once you get back inside func1.
  댓글 수: 2
Julia
Julia 2014년 10월 2일
I think the task of this homework is to understand how the given functions work. And that it is intended that func2 does not use the global variable G.
Image Analyst
Image Analyst 2014년 10월 2일
편집: Image Analyst 2014년 10월 2일
If it's not global, then she must pass it in via the input argument list. That's perhaps the best way. Other ways of getting the same G inside func2() (if you need the same G in there) are discussed in the FAQ http://matlab.wikia.com/wiki/FAQ#How_can_I_share_data_between_callback_functions_in_my_GUI.28s.29.3F. Of course maybe they don't want that and want you to see how the G in func2() is not the same value as the one in func1().
The homework problem instructions pass in G as part of an expression which is evaluated so it's not really passed in. Even if it were, it's overwritten with a value of 50, but since it's not global and not passed out, the 50 value won't be seen outside of func2().

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by