Function capability in Matlab

1 次查看(过去 30 天)
Dear all,
I have 30 source data in my matlab folder, data1.dat,data2.dat..data30.dat.. I have the exact code for each one of these source code. I thought to create one function for all then when running it from the command to specify which data source i want to run !! I did
function work ('filename')
mywork = importdata (filename)% before it was data1.dat..
but its not correct, how can I achieve this?

采纳的回答

Nirmal Gunaseelan
Nirmal Gunaseelan 2011-8-15
The argument list to the function should be the variable names themselves and not a string (within quotes) of the variable name. So in your case, the code should be:
function work (filename)
mywork = importdata (filename)
And, while calling the function, the argument should be a string. That is,
work('data1.dat')
  1 个评论
Susan
Susan 2011-8-15
thanks, It worked after putting the string while calling it :)

请先登录,再进行评论。

更多回答(2 个)

Jan
Jan 2011-8-15
function work(filename) % No quotes!
mywork = importdata (filename)
  3 个评论
Jan
Jan 2011-8-15
@Paulo: Does "but its not correct, how can I achieve this?" mean, that Susan wants to achieve an incorrect code?

请先登录,再进行评论。


Paulo Silva
Paulo Silva 2011-8-15
%just in case you discard that function and just want to import all files
for n=1:30
MyWork{n} = importdata(['data' num2str(n) '.dat']); %you might not need the '.dat'
end
  3 个评论
Paulo Silva
Paulo Silva 2011-8-15
why not? it works just fine in this case, I'm confused :/
Paulo Silva
Paulo Silva 2011-8-15
ohhh now I see, I forgot the conversion from double to string, silly me
['data' num2str(n) '.dat']

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Data Type Conversion 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by