假设我们有一个结构数组。该结构包含字段:name
、price
和 cost
。
假设数组 A
的大小为 n x 1
。如果我想显示第一个、第三个和第四个结构的名称,我可以使用命令:
A([1,3,4]).name
问题是它在屏幕上打印了以下内容:
ans =
name_of_item_1
ans =
name_of_item_3
ans =
name_of_item
我怎样才能删除那些 ans =
东西?我试过:
disp(A([1,3,4]).name);
只是为了得到一个错误/警告。
通过执行 A([1,3,4]).name
,您将返回 comma-separated list .这相当于在 MATLAB 命令提示符中键入以下内容:
>> A(1).name, A(3).name, A(4).name
这就是为什么您会看到 MATLAB 命令提示符给您 ans = ...
三次。
如果要一起显示所有字符串,请考虑使用 strjoin
将所有名称连接在一起,我们可以用逗号分隔名称。为此,您必须将所有这些放在一个元胞数组中。我们称此元胞数组为 names
。因此,如果我们这样做:
names = {A([1,3,4]).name};
这等同于:
names = {A(1).name, A(3).name, A(4).name};
这将创建一个 1 x 3 的名称元胞数组,我们可以使用这些名称将它们连接在一起,方法是用逗号和空格分隔它们:
names = {A([1,3,4]).name};
out = strjoin(names, ', ');
然后您可以显示最终字符串的样子:
disp(out);
我是一名优秀的程序员,十分优秀!