What Is A Scalar String?

50 次查看(过去 30 天)
Jay
Jay 2019-6-24
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 个评论
Nzuzo Thabiso
Nzuzo Thabiso 2025-6-5
Hi walter please assist with ways of rectifying this error it is appearing on the BEAR Toolbox for rconometrics

请先登录,再进行评论。

采纳的回答

dpb
dpb 2019-6-24
移动:Cris LaPierre 2025-6-5
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 个评论
Jay
Jay 2019-6-24
移动:Cris LaPierre 2025-6-5
Thank you dpb, that is the information I required.
Stephen23
Stephen23 2025-6-5
"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.

请先登录,再进行评论。

更多回答(1 个)

Steven Lord
Steven Lord 2025-6-5
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

类别

Help CenterFile Exchange 中查找有关 String 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by