Info

This question is closed. Reopen it to edit or answer.

Is there any other ways instead of using for loop for this one?

1 view (last 30 days)
A={[10,11,10,7],[7,8,7,6],[11,10,9,9],[7,5,11,5];[9,8,6,11],[10,6,9,7],[6,12,8,9],[7,10,12,9];[10,7,12,6],[8,11,7,5],[8,5,9,9],[10,10,10,10]};
C=[1 1 0 1;0 1 1 1;1 0 1 1; 0 1 1 0];
[a,b]=find(~C);
for i=1:numel(a)
for j=1:size(A,1)
A{j,a(i)}(b(i))=100;
end
end
Is there any other smart ways to solve?

Answers (1)

Matt J
Matt J on 14 Jul 2020
Edited: Matt J on 14 Jul 2020
It would be better if A were just a 3D numeric array,
Amat=cell2mat(reshape(A, size(A,1),1,[]))
Then you could simply do,
Amat(:,~C.')=100

Community Treasure Hunt

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

Start Hunting!