Write a function with input .xls file to read'

Hi, I'm writing a function (not a '.m' script) that allows me to make a series of econometric tests on a pair of stocks. My input should be the name of the excel file to read. More specifically, my idea is: Function Econometric= Analysis(Stock). The following first line of the code that I wrote was Stock=xlsread('nameofstock.xls',1,'B2:B263'). Unfortunately it doesn't work. I know all other following lines are ok but without first line...everything is useless. Can you help me? Thanks

Réponses (2)

Stephen23
Stephen23 le 6 Juil 2016
Modifié(e) : Stephen23 le 6 Juil 2016
function Econometric = Analysis(filename)
Stock = xlsread(filename,1,'B2:B263')
... the rest of your code
end
As explained in the function documentation, and also covered in the introductory tutorials:

2 commentaires

polar
polar le 6 Juil 2016
Yes I tried this but it shows this error: "Undefined function 'analysis' for input arguments of type 'char'.
Stephen23
Stephen23 le 6 Juil 2016
Modifié(e) : Stephen23 le 6 Juil 2016
MATLAB is case sensitive. Your function is called Analysis, but your error message tells us that you are calling analysis. You need to make up your mind which one you are going to use!

Connectez-vous pour commenter.

Star Strider
Star Strider le 6 Juil 2016
Modifié(e) : Star Strider le 6 Juil 2016
The xlsread function is going to assume that ‘nameofstock.xls’ in this line is the file name you want to read, because of the single quotes:
Stock=xlsread('nameofstock.xls',1,'B2:B263');
If ‘nameofstock.xls’ is already a string, you don’t need the quotes.
----------------------------
EDIT ‘Yes I tried this but it shows this error: "Undefined function 'analysis' for input arguments of type 'char'.’
You named your function ‘Analysis’ but called it as ‘analysis’. MATLAB is case-sensitive, so ‘Analysis’ is not the same as ‘analysis’.
Call it as:
Econometric= Analysis(Stock);
and you will not get that error.

4 commentaires

polar
polar le 6 Juil 2016
uhmmm..I think I'm missing you. Ok maybe I had to tell this first: I don't run the function script but save it and then, on the COMMAND WINDOW, I write: Analysis('filenanem.xls'). So I think I'm wrong here...what to do?
It depends on how you wrote your function.
I don’t have all your code, but you could be creating a conflict with:
Function Econometric = Analysis(Stock)
and:
Stock=xlsread('nameofstock.xls',1,'B2:B263')
That would replace your input variable ‘Stock’ with the result of the file read operation.
I would do something similar to:
StockData = xlsread(Stock,1,'B2:B263');
instead.
polar
polar le 6 Juil 2016
YESSSSS I DID!!!! MY mistake: I previoulsy changed the name of the function from "analysis" to another name and obviously Matlab didn't recognized it. Thanks mate!
Star Strider
Star Strider le 6 Juil 2016
My pleasure!

Connectez-vous pour commenter.

Produits

Question posée :

le 6 Juil 2016

Commenté :

le 6 Juil 2016

Community Treasure Hunt

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

Start Hunting!

Translated by