我在matlab中有以下单元格数组:
dataCell = {0.1,0.3,0.5 ; 0.2,0.4,0.6};
并希望将第二列( [0.3] 和 [0.4] )乘以100.您是否知道在没有循环的情况下执行此操作的简单方法?< / p>
非常感谢,
塞尔吉奥
答案 0 :(得分:1)
使用cellfun()
,虽然它与for循环没有根本的不同。
dataCell = {0.1,0.3,0.5 ; 0.2,0.4,0.6};
a = dataCell(:,2);
cellfun(@(x) x*100,a,'un',0)
ans =
[30]
[40]
如果你想放回来:
dataCell(:,2) = ans
dataCell =
[0.1000] [30] [0.5000]
[0.2000] [40] [0.6000]
答案 1 :(得分:1)
您可以将单元格转换为数组,然后再将其转换回来。
result = cell2mat(dataCell);
result(:,2) = result(:,2) * 100;
dataCell = mat2cell(result, [1 1], [1 1 1]);