What Is A Scalar String?

51 visualizaciones (últimos 30 días)
Jay
Jay el 24 de Jun. de 2019
Respondida: Steven Lord el 5 de Jun. de 2025
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.
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 comentarios
Nzuzo Thabiso
Nzuzo Thabiso el 5 de Jun. de 2025
great insight Walter
Nzuzo Thabiso
Nzuzo Thabiso el 5 de Jun. de 2025
Hi walter please assist with ways of rectifying this error it is appearing on the BEAR Toolbox for rconometrics

Iniciar sesión para comentar.

Respuesta aceptada

dpb
dpb el 24 de Jun. de 2019
Movida: Cris LaPierre el 5 de Jun. de 2025
A scalar string is simply a string that is not an array of strings...see https://www.mathworks.com/help/fixedpoint/ug/code-generation-for-strings.html beginning discussion.
  2 comentarios
Jay
Jay el 24 de Jun. de 2019
Movida: Cris LaPierre el 5 de Jun. de 2025
Thank you dpb, that is the information I required.
Stephen23
Stephen23 el 5 de Jun. de 2025
"A scalar string is simply a string that is not an array of strings"
A scalar string is an array, it is an array with size 1x1(x1x1x...). The linked documentation also states "A 1-by-1 string array, called a string scalar,..." (bold added). Because in MATLAB everything is an array:
In other words, there is no string that is not an array.
The defining characteristic of a scalar string (or a scalar anything, for that matter), is that it has size 1x1(x1x1...). That is all.

Iniciar sesión para comentar.

Más respuestas (1)

Steven Lord
Steven Lord el 5 de Jun. de 2025
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_42 = 1×2
1 1
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
size_pi = size(pi)
size_pi = 1×2
1 1
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
size_1_2 = size([1 2])
size_1_2 = 1×2
1 2
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
size_square_brackets = size([])
size_square_brackets = 1×2
0 0
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
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([])]
scalarTest = 1×4 logical array
1 1 0 0
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)
numberOfStrings = 1×2
1 1
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
lengthOfEachString = strlength(s)
lengthOfEachString = 8
isStringScalar(s) % true since numberOfStrings = [1 1]
ans = logical
1
veggies = ["asparagus", "zucchini"];
numberOfStrings = size(veggies)
numberOfStrings = 1×2
1 2
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
lengthOfEachString = strlength(veggies)
lengthOfEachString = 1×2
9 8
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
isStringScalar(veggies) % false since numberOfStrings is [1 2]
ans = logical
0

Community Treasure Hunt

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

Start Hunting!

Translated by