结合与数字传染媒介matlab的信件传染媒介

时间:2014-09-16 08:29:50

标签: matlab vector concatenation

我想结合一个字母矢量

 AssetList(1,2:end)

ans = 

    'a'    'b'    'c'    'd'    'e'

带有数字向量

x

x =

    0.3857
    0.2143
    0.0000
         0
    0.4000

创建一个表格,其中a = 0.3857等,但无论我尝试什么,我都会收到错误。例如:

y=cat(2,alldata(1,2:end)',x)
  

使用cat时出错       连接矩阵的维数       不一致。

3 个答案:

答案 0 :(得分:1)

我不确定你想要什么,也许是这样的:

x = 'a':'e'
y = 11:15
C = cell(5,2)
for t = 1:5
   C{t,1}=x(t)
   C{t,2}=y(t)
end

它当然可以被矢量化,但我发现这个解决方案更容易理解。

答案 1 :(得分:1)

标准MATLAB数组只能处理一种数据类型,例如:无论是角色还是双打。如果你想组合多种类型的数据,你将需要使用结构或单元格,正如Dennis Jaheruddin在他的回答中所做的那样。

参见附件中有关如何将其放入结构数组的示例:

for n=1:5
    y(n).character = AssetList(1,n+1)
    y(n).number = x(n)
end

答案 2 :(得分:1)

你的方法几乎可行。在使用x之前,您只需要将cat转换为单元格数组(mat2cell):

y = cat(2, alldata(1,2:end).', mat2cell(x, ones(1,numel(x))));