Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

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

조회 수: 1 (최근 30일)
SM
SM 2020년 7월 14일
마감: MATLAB Answer Bot 2021년 8월 20일
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?

답변 (1개)

Matt J
Matt J 2020년 7월 14일
편집: Matt J 2020년 7월 14일
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
SM
SM 2020년 7월 16일
Is it possible to get back from 3D numeric array to celll?
Matt J
Matt J 2020년 7월 17일
Yes, use num2cell().

Community Treasure Hunt

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

Start Hunting!

Translated by