What Is A Scalar String?
Mostra commenti meno recenti
Can someone please tell me what is meant by "scalar string object"?
I am finding it difficult to understand how a string can be a scalar (to me, scalars represent a multiplier?).
I have searched the MathWorks Documentation (Define String Scalar Inputs [states how to define a string scalar but not what one is]) and still can not wrap my head around what is meant.
I have also searched MATLAB Answers (SWITCH expression must be a scalar or string constant. , Why do I receive an error about a SWITCH expression when using ODE15S within MATLAB? & String [converting a "tokenized" document]).
Does the "Scalar String" defintion mean single elements comprising of multiple strings, for example:
A (1,1) = "Todays Date Is June 24th, 2019" as a string
A (1,1) = "Todays" "Date" "Is" "June" "24th," "2019" as a scalar string object
or am I completely off the mark?
5 Commenti
David Goodmanson
il 24 Giu 2019
Hi Justin
a = "etaoinshrdlu"
class(a)
ans = 'string'
size(a)
ans = 1 1
a(5:6) % produces an error
b = 'etaoinshrdlu'
class(b)
ans = 'char'
size(b)
ans = 1 12
b(5:6)
ans = 'in'
so character arrays behave like you might expect, but strings are an entirely different animal. Strings are useful for some purposes, no doubt..
Walter Roberson
il 24 Giu 2019
Scalar in computer programs usually means "exactly one item". In MATLAB scalar numbers are also array that are 1x1. In many programming languages, arrays and scalars are considered to be different data types. For example in C if you have
A = 42;
Then that is a scalar value, and you cannot use A[0] (array indexing starts at 0 in C)
In MATLAB, a scalar string object holds exactly one string, which is a complete vector of characters.
Jay
il 24 Giu 2019
Nzuzo Thabiso
il 5 Giu 2025
great insight Walter
Nzuzo Thabiso
il 5 Giu 2025
Hi walter please assist with ways of rectifying this error it is appearing on the BEAR Toolbox for rconometrics
Risposta accettata
Più risposte (1)
A scalar array in MATLAB is one whose size is [1 1]. So for example 42 and pi are scalars, while [1 2] and [] are not.
size_42 = size(42)
size_pi = size(pi)
size_1_2 = size([1 2])
size_square_brackets = size([])
One way to check if an array is a scalar array is using the isscalar function. Based on the sizes above we'd expect the following command to return [true true false false] and it does.
scalarTest = [isscalar(42), isscalar(pi), isscalar([1 2]), isscalar([])]
For text data, there's an additional tool you can use, the isStringScalar function. Here's a string array that has size [1 1] (there's only one string in the array.) Note that the length of the text stored in that string is not relevant to answering the question "is the string array a scalar string", just the size of the string array itself is relevant. To obtain the length of each string in the string array you'd want to use the strlength function.
s = "alphabet";
numberOfStrings = size(s)
lengthOfEachString = strlength(s)
isStringScalar(s) % true since numberOfStrings = [1 1]
veggies = ["asparagus", "zucchini"];
numberOfStrings = size(veggies)
lengthOfEachString = strlength(veggies)
isStringScalar(veggies) % false since numberOfStrings is [1 2]
Categorie
Scopri di più su String in Centro assistenza e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!