Matlab-在单元矩阵中的给定列中的操作

时间:2014-01-14 15:08:14

标签: matlab matrix cell

我有一个单元格矩阵,第一个'列'有字符串,第二个'列'有数字。假设我想在第二列中执行相同的操作。如果这个细胞矩阵是一个共同的矩阵我可以做:

   matrix(:,2)=matrix(:,2)*100;

但我不知道如何在单元格矩阵中执行此操作,当我以不同方式尝试时,它会给我带来错误:

>> BKS{:,2}=BKS{:,2}*100
   Error using  * 
   Too many input arguments.

>> BKS(:,2)=BKS(:,2)*100
   Undefined function 'mtimes' for input arguments of type 'cell'.

如何使用matlab执行此操作?

2 个答案:

答案 0 :(得分:2)

使用cellfun(基本上是循环)

BKS(:,2) = cellfun(@(x)(x*100),BKS(:,2))

答案 1 :(得分:2)

提供替代方案:

BKS(:,2) = num2cell(100*[BKS{:,2}].');

BKS(:,2) = cellfun(@times, BKS(:,2), repmat({100}, size(BKS,1),1), 'UniformOutput', false);