Recall workspace variable in a function

Hi there!
I'm in trouble with this matlab function that i wrote.
function write_txt(filename)
Title_1 = 'Results';
Label_1 = ' Value1 ';
Label_2 = ' Value2 ';
Label_3 = ' Value3 ';
Mo_1 = {'Results'};
Data_1 = [x y z];
fid = fopen(filename,'w+t');
if fid < 0
fprintf('error opening file\n');
return;
end
fprintf(fid,'%s\n',Title_1);
fprintf(fid,'\n');
fprintf(fid,' %s%s%s\n',Label_1,Label_2,Label_3);
for ii= 1:1
fprintf(fid,'%5s: ',Mo_1{ii});
fprintf(fid,'%5.2f,%5.2f\n',Data_1(ii,:));
end
fclose(fid);
end
Basically this function write a .txt with all my results from another matlab script. The variable calculted in another matlab script (x,y,z) should be write on the txt file.
When i try to make the .txt file through the Command Window, Matlab give me this error:
Undefined function or variable 'x'.
Error in write_txt (line 7)
Data_1 = [x y z];
While the x,y,z variables are defined. Someone can help me?

댓글 수: 3

Stephen23
Stephen23 2018년 12월 4일
Just pass those values as input arguments:
function write_txt(filename,x,y,z)
Hi! I tried, gave me this:
>> write_txt
Not enough input arguments.
Error in write_txt (line 7)
Data_1 = [x 2 3];
Stephen23
Stephen23 2018년 12월 4일
@Carlo Alberto Carissimi: you need to provide the required input arguments when you call the function, e.g.:
>> write_txt('myfile.txt',1,5,23)
How to call functions is a very basic MATLAB concept that is explained in the introductory tutorials:

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

답변 (2개)

madhan ravi
madhan ravi 2018년 12월 4일
편집: madhan ravi 2018년 12월 4일

0 개 추천

Define x y z before using it? Because matlab won't show that error if the variables are in workspace already.

댓글 수: 4

Hi, thank you for your response. Yes, i defined this variable and have it in the workspace
madhan ravi
madhan ravi 2018년 12월 4일
type whos x in command window and paste the result here. P.S- why not define the variables inside the function?
>> whos x
Name Size Bytes Class Attributes
x 1x1 8 double
madhan ravi
madhan ravi 2018년 12월 4일
so why not just define it inside the function since it's a scalar?

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

Walter Roberson
Walter Roberson 2018년 12월 4일

0 개 추천

the variables are not define in the workspace active in the function .They might possibly be in the base workspace and if so could be pulled from there if really needed . but better would be if you pass their values to the function as additional arguments.

댓글 수: 2

Hi! Thank you for the response. I understand the problem, you might know how can i solve it? Or can you suggest me how to search it on google?
Stephen23
Stephen23 2018년 12월 4일
" I understand the problem, you might know how can i solve it?"
Exactly as Walter Roberson and I already wrote, you should pass those values as input arguments.

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

카테고리

도움말 센터File Exchange에서 Entering Commands에 대해 자세히 알아보기

제품

릴리스

R2018b

질문:

2018년 12월 4일

댓글:

2018년 12월 4일

Community Treasure Hunt

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

Start Hunting!

Translated by