how to write code to add some scalar value to each 4by4 cell of a dataset?
2 次查看(过去 30 天)
显示 更早的评论
hello everyone. need help.I want to add some scalar value to each 4by4 cell of size 64by64. for example : add 10 to first 4by4 cell . then add 20 to the other 4by4 cell and so forth. How do i write the code in matlab. I am new so need your help. Thanks!
1 个评论
回答(2 个)
Jan
2018-5-13
编辑:Jan
2018-5-13
If these are your inputs (see my comment):
C = cell(4, 4);
for iC = 1:4
C{iC} = rand(64, 64);
end
toAdd = [10, 20, 30, 40];
then a loop is working:
for iC = 1:numel(C)
C{iC} = C{iC} + toAdd(iC);
end
Or maybe you mean:
toAdd = 10 * (1:(64*64)); % Example data
for iC = 1:numel(C)
C{iC} = C{iC} + toAdd;
end
This can be achieve by arrayfun or cellfun also, but I consider a loop to be more clear and easy.
0 个评论
Ameer Hamza
2018-5-13
You can do it using arrayfun():
cellArray = ... % 64x64 array of cells
% define a 64x64 'addMatrix', its elememnts will be added to corrosponing cell of 'cellArray'
addMatrix = [10 20 30, ..... 640;
....;
....;
....]; % define a 64x64 matrix
result = arrayfun(@(x, y) x{:} + y, cellArray, addMatrix, 'UniformOutput', 0);
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!