Making a filename into a variable
显示 更早的评论
I have a script where I load in some data with a function. "function MyScript('file1.dat','file2.dat','file3.dat')"
I do some calculations so I have the two numbers I want in a vector X. Now I want Matlab to write:
"Calculated file2 = X(1)"
"Calculated file3 = X(2)"
with the filename as text, and showing the value of X.
3 个评论
Jan
2016-11-15
The question is not clear: "function MyScript(file1.dat,file2.dat,file3.dat)" is not valid Matlab-syntax. Do you mean
function MyScript(file1, file2, file3)
which is called as:
MyScript('file1.dat', 'file2.dat', 'file3.dat')
? Where should "Calculated file2 = X(1)" appear, when you want to "write" it? and which filename should appear as "text"?
Please edit your question and do not post the important details as a comment. Thanks.
Alexander Kjærsgaard
2016-11-15
编辑:Alexander Kjærsgaard
2016-11-15
Adam
2016-11-15
You can't have spaces in variable names and it is not advisable to name variables sequentially after files or other numbered inputs.
An array works far better.
doc sprintf
should be used to print things out to the screen too. Variable names are internal to a function, they should certainly have names that make sense to the programmer, but they shouldn't ever require to be exposed to an external user of the function. Using sprintf you can put together text on the screen saying whatever you want, without being constrained trying to name variables to achieve it.
回答(1 个)
Image Analyst
2016-11-15
You cannot have the function declaration line be this:
function MyScript(file1.dat,file2.dat,file3.dat)
The .dats are not allowed. And MyScript is a bad name for a function since it's a function and not a script. You can do this
function MyFunction(file1, file2, file3)
Inside that function you can compute X and print it out to the command window like this:
fprintf('Calculated %s = %f\n', file2, X(1));
fprintf('Calculated %s = %f\n', file3, X(2));
类别
在 帮助中心 和 File Exchange 中查找有关 Whos 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!