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 个评论

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?
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.
My comment is still valid, I think. You could pass them all in a structure for instance.
Ok, How can I change my function please?

请先登录,再进行评论。

回答(0 个)

类别

Community Treasure Hunt

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

Start Hunting!

Translated by