0

我的目标是初始化一个 Map 对象,其中键为双精度,值为结构。

我有一个类似于这样的结构数组:

s(1) = [1,2,3];
s(1) = 'str';
s(2) = [4,5,6];
s(2) = 'str2';
s(3) = [7,8,9];
s(3) = 'str3';

然后我想创建一个地图对象,如:

awesome = container.Map(1:3, s);

但我收到以下错误:

Error using containers.Map
Specified value type does not match the type expected for
this container.

但如果我这样做,它会起作用:

awesome = container.Map(1:3, {s1, s2, s3});

为什么会发生这种情况,如何在保持结构作为值类型的同时使其工作?

4

1 回答 1

0

假设您的结构设置代码旨在:

s(1).Numbers = [1,2,3];
s(1).String = 'str';
s(2).Numbers = [4,5,6];
s(2).String = 'str2';
s(3).Numbers = [7,8,9];
s(3).String = 'str3';

您可以使用以下结构数组制作地图:

theMap = containers.Map( 1:3, arrayfun(@(x) ({x}), s))
于 2012-05-26T03:37:05.313 回答