I'm working on a code that requires me to replace the values in an empty matrix with new ones. I'm trying to do this using a while loop but can't seem to get it right can anyone provide some insight as to how I should continue? I was thinking something along the lines of this:
M=zeroes(5)
while M 'contains a zero'
x=randi(5)
Y=randi(5)
M(x,y)='Replavement Value Function'
end
This issue I'm having is I don't understand how to write the while loop such that it will continuously perform this operation until M no longer contains a zero.

 채택된 답변

Guillaume
Guillaume 2019년 1월 10일

1 개 추천

Note: an empty matrix (a matrix whose any dimension is of size 0) and a matrix filled with 0s are two completely different things.
Prior to R2018b, use
while any(M(:) == 0)
to check if any element of M is equal to 0. In R2018b, you can use
while any(M == 0, 'all')
to do the same

댓글 수: 3

William Diaz
William Diaz 2019년 1월 10일
Thanks this is what I was looking for! Quick follow up is their a way to track the number of times it has to perform the loop before all the values are replaced?
Use a counter incremented inside the loop:
counter = 0;
while any(M == 0, 'all')
counter = counter+1;
%...
end
William Diaz
William Diaz 2019년 1월 10일
Perfect thank you

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

태그

질문:

2019년 1월 10일

댓글:

2019년 1월 10일

Community Treasure Hunt

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

Start Hunting!

Translated by