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 个评论
Jan
Jan 2018-5-13
编辑:Jan 2018-5-13
It is not clear to me, what the inputs are. Posting a small example would be useful. Perhaps:
C = cell(4, 4);
for iC = 1:4
C{iC} = rand(64, 64);
end
If this matches your inputs, what exactly is "the first 4by4 cell" and what is "the other"?

请先登录,再进行评论。

回答(2 个)

Jan
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.

Ameer Hamza
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);

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by