Way to pass to a function a random variable based on array

조회 수: 1(최근 30일)
I have a list of variables in my workspace as a string array. I want to call a function to test every combo
Unfortunately when i run as it currently is it passes the string of the varialbe name and not the variable in my workspace. I have tried using the eval command however I can't have the eval command work in a parfor loop. Unfortunately without parfor it is very slow to test.
parfor i = 1:10
for j = i:10

채택된 답변

Walter Roberson
Walter Roberson 2012년 3월 22일
I would suggest using a structure array in your case.
testprocedure( VarStruct.(VarArray{i}), VarStruct.(VarArray{j}) )
  댓글 수: 1
Oleg Komarov
Oleg Komarov 2012년 3월 22일
I am seriously thinking to resume my post on how people should scale their projects, because inevitably they end up with eval.

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

추가 답변(1개)

Chris 2012년 3월 23일
Thanks, I guess I am a little confused though how to do.
So for example I have an array called TeamNames that contains all of the names of various teams. TeamNames(1,1) is called Bulls which is a variable in my matlab workspace. How do I pass Bulls to my function TestProcedure without using Eval? I want the forloop to loop through all TeamNames and run the test procedure on two teams at a time. Ideally using parfor since it is a lot faster. When I run the testprocedure(TeamNames(i,1),TeamNames,(j,1)) it passes the string of the variable rather than the matlab variable in my workspace. I have to use the eval command to pass however that is not compatible with Parfor so I am stuck.



Community Treasure Hunt

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

Start Hunting!

Translated by