Clarification: Array of strings vs cell array of character vectors

14 ビュー (過去 30 日間)
Bryan Wilson
Bryan Wilson 2016 年 11 月 1 日
回答済み: Walter Roberson 2016 年 11 月 1 日
I'm beginning to code a new project. I'll have multi-tiered structures to work with, and some of the fields will have labels and comments on certain data entries. I can put these in as arrays of strings OR as cell arrays of character vectors.
comment1 = strings('hello','world','!'); %3x1 string
%vs
comment2 = cellstr(['hello','world','! ']); %3x1 cell
Do you find one is easier to work with than another? I'm leaning towards arrays of strings. It's easier to set up at least.

採用された回答

James Tursa
James Tursa 2016 年 11 月 1 日
編集済み: James Tursa 2016 年 11 月 1 日
Generally, if you will be accessing the individual strings downstream in your code, use a cell array of strings. Many MATLAB functions are already coded to handle these naturally. E.g.,
comments = {'hello','world','!'};
If you also need to concatenate them later on you can always do this:
comment = [comments{:}];

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2016 年 11 月 1 日
The string() data type is very new. I am still trying to figure out what it is good for.
It does add a layer of object transparency, allowing you to say
A(K) = B
without having to know that you instead need to do
A{K} = B
because the content happens to be a character vector. That is good over the long term for object oriented processing.
But in practical terms, the only benefit I have seen to date is that finally we can answer those questions where a student is asked to store a character vector into "a" location. Like the assignments where the student has to write a function that accepts a matrix and returns a matrix of the same size in which each entry of the output matrix is either 'odd' or 'even'. I am convinced that the people who make up the homework assignments do not know much about MATLAB.

カテゴリ

Help Center および File ExchangeStructures についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by