use for in matlab

Hi a question please: o1=100 o2=200 I want to write something like that:
if true
for i=randi(O1,[1 ((50/100)*O1)])
for j=randi(O2,[1 ((50/100)*O2)])
end
in fact, if
IDX=randi(O1,[1 ((50/100)*O1) and JDX=randi(O2,[1 ((50/100)*O2)])
I want to start from IDX(1):IDX(end). like:
for i=IDX(1):IDX(end)
for j=JDX(1):JDX(end)
Thank you

Risposte (1)

Walter Roberson
Walter Roberson il 3 Nov 2015
for i = IDX
for j = JDX
...
end
end

4 Commenti

Thank you. but I got the error:
Warning: Size vector should be a row vector with integer elements.
Walter Roberson
Walter Roberson il 3 Nov 2015
Modificato: Walter Roberson il 8 Nov 2015
IDX = randi(O1,[1 O1/2]);
JDX = randi(O2,[1 O2/2]);
Provided that O1 and O2 are even.
But I still get the error
Warning: Size vector should be a row vector with integer elements.
Walter Roberson
Walter Roberson il 8 Nov 2015
I do not get that. Have you possibly changed your O1 or O2 to values that are not even? Your question asked about O1=100 O2=200 both of which are even (divisible by 2).
If one of your O1 or O2 are odd, then you need to clarify whether you want the half rounded down or rounded up. For example if your O1=101 then do you want your random vector to be length 50 (101/2 rounded down) or 51 (101/2 rounded up) ?

Accedi per commentare.

Tag

Richiesto:

il 3 Nov 2015

Community Treasure Hunt

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

Start Hunting!

Translated by