Invalid array indexing before arguing variable
显示 更早的评论
For example,
sheetnames(FullFilePath)
This will give me string array (e.g., 5x1).
So, I tried to access directly one of elements like below
sheetnames(FullFilePath)(1)
But, this did not work.
A = sheetnames(FullFilePath)
A(1)
However, after arguing variable, if I do the same approach, then I could access the element.
Why does this happen? what is the difference between first and second approach.
I thought both looks the same.
3 个评论
Walter Roberson
2023-5-1
sheetnames is defined as as a function returning a string array.
You cannot directly use () or {} indexing on the return value from a function, so
sheetnames(FullFilePath)(1)
is invalid as that is trying to do () indexing on the return value of a function.
The only kind of indexing that you can do on the return value from a function is dot indexing
This is a limitation on the MATLAB parser .
There is some history behind it. Consider for example,
ones(2)
If you were permitted to directly index the result of a function call, you would not be able to tell whether ones(2) is a call to function ones with parameter 2, or if it is instead a call to function ones with no parameters, with the result to be indexed at (2) .
the cyclist
2023-5-1
Coincidentally, @Walter Roberson, I just happened to be looking at your answer to the What is Missing from MATLAB? thread today. (That page takes forever to load now.)
Hokon
2023-5-2
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!