Creating a random matrix with conditions without using iteration
Ältere Kommentare anzeigen
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.
1 Kommentar
Gregory Shoemake
am 5 Okt. 2016
Antworten (3)
KSSV
am 5 Okt. 2016
A=10*rand(5,5);
A(A<5) = 0 ;
Jan
am 5 Okt. 2016
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).
1 Kommentar
Gregory Shoemake
am 5 Okt. 2016
Jos (10584)
am 5 Okt. 2016
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
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!