我对编程很新,所以如果我误用了一些术语,我会事先道歉。
我的问题如下:
我有一个142 x 1标称数据集数组(CountryList),其中包含唯一的国家/地区名称和四个142 x 1数字数组,其中包含有关这些国家/地区的信息。我想将它们组合成一个单独的142 x 5数据集数组'CountryInfo'。下面的例子只包括我要添加的四个数值数组中的一个,但我认为如果它适用于一个,则同样适用于更多。
我尝试了很多东西,包括
CountryInfo = join(CountryList, Info1, 'Type', 'leftouter')
提示错误
??? Undefined function or method 'join' for input arguments of type 'nominal'.
和
CountryInfo = horzcat(CountryList, Info1)
提示错误
All input arguments must be from the same categorical class.
我认为使用数据集类可以让我连接不同类的数组。
如果以上没有意义,请帮助我更清楚。
非常感谢你的帮助!
答案 0 :(得分:2)
这应该有效:
D1 = dataset({{'Spain';'USA';'France'}, 'CountryList'})
D2 = dataset({[20e6; 250e6; 50e6], 'Population'})
D3 = dataset({[3000;5000;3500], 'GDP'})
D = [D1 D2 D3]
>> D
D =
CountryList Population GDP
'Spain' 2e+07 3000
'USA' 2.5e+08 5000
'France' 5e+07 3500
>> size(D)
ans =
3 3
答案 1 :(得分:1)
在Matlab中,数组/矩阵只包含数字而不包含字符串。混合类型使用单元格数组(使用花括号)。
C1 = {'Spain';'USA'};
C2 = {45;7};
A3 = [3;4];
C3 = mat2cell(A3,[1 1]);
C = [C1 C2 C3]
输出:
C =
'Spain' [45] [3]
'USA' [ 7] [4]