Creating a random matrix with conditions without using iteration
이전 댓글 표시
Is it possible to make a matrix using rand where all values less than a certain value, such as 5, are replaced by 0? Without any iteration by the way.
I know you can just do:
A=10*rand(5,5);
A=(A(:,:)>5).*A(:,:)
But this iterates off the previous declaration.
답변 (3개)
KSSV
2016년 10월 5일
A=10*rand(5,5);
A(A<5) = 0 ;
Jan
2016년 10월 5일
This is fine:
A = (A>5) .* A
There is not reason to avoid this. Using 2 lines instead of one is not a drawback.
An "iteration" means a loop usually. So you code does not contain an iteration (if we ignore that Matlab uses loops internally to process the elements of the array).
Jos (10584)
2016년 10월 5일
A = [1 5 3 2 4]
A(A>3) = 0 % all at once, the way to go!!
B = [1 5 3 2 4]
for k=1:numel(B), % iteration over each element of B
if B(k) > 3,
B(k) = 0 ;
end ;
end
카테고리
도움말 센터 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!