我有一个单元格矩阵,第一个'列'有字符串,第二个'列'有数字。假设我想在第二列中执行相同的操作。如果这个细胞矩阵是一个共同的矩阵我可以做:
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执行此操作?
答案 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);