Matlab从另一个单元阵列字段制作新的单元阵列

时间:2014-11-27 09:45:17

标签: arrays matlab cell-array

我有一个单元格数组thiscells

thiscells <1*40 cell>
eacharray of thiscells is 280*3

我有一个函数(TheFunction),它获取每个数组为X * 2的单元格数组的输入

如何将单元格数组发送到每个数组只包含columns1,3的TheFunction

我试过

TheFunction(thiscells{:}(:,1:2)) % tring to send only columns 1,2

但它没有工作

编辑:

使用(但仍在寻找更快的方法):

到目前为止做了什么

TheFunction(makingNewCells(thiscells,2));

何时

makingNewCells:
[newCells]=makingNewCells(oldCells)
for ii=1:max(size(oldcells))
  newCells=oldCells(:,[1 column]);
end

1 个答案:

答案 0 :(得分:0)

This question及其答案可能会有所帮助 - thiscells{:}(:,1:2)如果我没有记错的话,如果没有拨打Thefunction就已经失败了。

对于单元格来说,问题更加严重:加上这种双子参数不可能,即使它按照你的意图去做,也会将40个参数(都是280x2向量)传递给Thefunction。我怀疑(m)有一个函数的任何合法用途,它接受40个相同类型的参数,而不是将它们包含在一个单元格中。我可能会首先尝试doc cellfun

编辑:为了清楚起见,我建议更改Thefunction以便它接受一个大小为280x2的40个矩阵的单元格,然后使用

cell_of_twocolumned_arrays = cellfun(@(x)x(:,[1 2]),thiscells)