Why are the results of the size function different from the whos function Size?

4 visualizzazioni (ultimi 30 giorni)
Why are the results of the size function different from the whos function Size?
Here is an example:
>> excelstring = strfind('ABC DUMP.txt','.xls')
excelstring =
[]
>> size excelstring
ans =
1 11
>> whos excelstring Name Size Bytes Class Attributes
excelstring 0x0 0 double

Risposta accettata

James Tursa
James Tursa il 15 Giu 2011
Doing this:
size excelstring
Is equivalent to doing this:
size('excelstring')
Whenever you invoke a function without the parens, the remainder of your inputs are taken to be literal string(s).
  1 Commento
Matt Fig
Matt Fig il 15 Giu 2011
As described here:
http://www.mathworks.com/help/techdoc/ref/syntax.html
This is called command-function duality.

Accedi per commentare.

Più risposte (1)

the cyclist
the cyclist il 15 Giu 2011
Because the syntax for what you wanted is
>> size(excelstring)
Looks like your syntax is giving the size of the string 'excelstring', rather than that of the variable named excelstring.
  1 Commento
Chirag Gupta
Chirag Gupta il 15 Giu 2011
To explain further, size excelstring is equivalent to asking MATLAB to compute size('excelstring').
MATLAB takes the arguments as strings if they are not passed in parenthesis ()

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by