call variables via evalin command into function

Hello I want to call some variable via 'evalin' into function. then I created z1 and z2 in workspace and save them into 'myfile8.mat'. then I created my function and named it 'ave1'. This is my function:
function[f]= ave1(z1,z2)
evalin('base','myfile8.mat');
load myfile8.mat
[n1,n2]=size(z1);
n3=n1*n2
[n4,n5]=size(z2);
n6=n4*n5
B=reshape(z1,n3,1);
C=reshape(z2,n6,1);
f=[B(:);C(:)]
end
when I ran 'ave1' in workspace I got this error:
Undefined variable "myfile8" or class "myfile8.mat".
Error in ==> ave1 at 2
evalin('base','myfile8.mat');
What is my problem and How can I solve it? Thanks

4 commentaires

José-Luis
José-Luis le 25 Juin 2014
Why do you want to do that? Maybe I am misunderstanding but it strikes my as unnecessary. Why not just pass the variables you need to the function and get rid of evalin() altogether?
fatema saba
fatema saba le 25 Juin 2014
it is just an example. in my main problem I have a lot of big matrices as variables. I need to call them into variables via evalin.
José-Luis
José-Luis le 25 Juin 2014
My comment is still valid, I think. You could pass them all in a structure for instance.
fatema saba
fatema saba le 25 Juin 2014
Ok, How can I change my function please?

Connectez-vous pour commenter.

Réponses (0)

Commenté :

le 25 Juin 2014

Community Treasure Hunt

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

Start Hunting!

Translated by