Load a variable in workspace from a Function

조회 수: 9 (최근 30일)
Chetan
Chetan 2011년 6월 5일
How to load a variable (defined in a sub-function) into the workspace?

채택된 답변

Fangjun Jiang
Fangjun Jiang 2011년 6월 5일
You need to clarify your question. Do you mean Matlab base workspace? You could declare the variable as global. However, many people will strongly against it.
help global
You could use return argument.
function [y1,y2]=MyFun(x1,x2)
y1=x1*x2;
y2=x1+x2;
when you call [z1,z2]=MyFun(1.1,2.2), you get the variable y1,y2 (defined in MyFun()).
  댓글 수: 3
Jan
Jan 2011년 6월 6일
Variables can be STRUCTs, CELLs or other types. The GLOBAL variable can have any type.
There are a lot of good reasons *not* to use GLOBALs or ASSIGNIN. Both reduce the readability and maintainability of the code drastically. And because most programmer spend more time with creating and debugging than with running a code, a clean programing technique is strongly recommended.
Fangjun Jiang
Fangjun Jiang 2011년 6월 6일
@Chetan, I think your follow up questions are answered. The best approach really depends on your programming needs. If you described your original question more and provided an example, the answers would be more direct and right on target. Sounds like Paulo Silva read your mind. You should have accepted his answer.

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

추가 답변 (1개)

Paulo Silva
Paulo Silva 2011년 6월 5일
assignin('base', 'VarNameYouWishAtWorkspace', VarNameAtYourFunction)
  댓글 수: 2
Chetan
Chetan 2011년 6월 6일
Thank you for both of your answers. I used Assignin() that was really helpful. I was wondering (@Paulo: How did you come across this function?)
I have solved the problem using Assignin.
Apart from
1) returning
2) making the variable global
3) loading the variable in 'base' matlab workspace
is there any other way also?
Is global only applicable to variables or for structures too?
Paulo Silva
Paulo Silva 2011년 6월 6일
We can find all kinds of weird functions inside MATLAB, I used it the first time inside a GUI, there's also the evalin function that you can use for similar purposes, it can even execute code on the workspace (good to define global variables on the workspace).
Global can be applied to any kind of variable but most people will tell you not to use global variables.

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

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by