Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

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

1 Ansicht (letzte 30 Tage)
SM
SM am 14 Jul. 2020
Geschlossen: MATLAB Answer Bot am 20 Aug. 2021
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?

Antworten (1)

Matt J
Matt J am 14 Jul. 2020
Bearbeitet: Matt J am 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
  2 Kommentare
SM
SM am 16 Jul. 2020
Is it possible to get back from 3D numeric array to celll?

Community Treasure Hunt

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

Start Hunting!

Translated by