How can I create a vector like this : X = [1, 2, 1, 2 ......

3 visualizzazioni (ultimi 30 giorni)
Hi,
How can I create a vector X = [ 1, 2, 1, 2 ....... ] with n value.(which n value can be odd or even).
Is there possible to use only two instructions?
thanks.
  2 Commenti
Walter Roberson
Walter Roberson il 2 Mar 2021
Is there possible to use only two instructions?
No. You need a minimum of 3 instructions even for the case where n is even. You can construct 1:2 or [1 2] but either way that takes one instruction. You need to divide n by 2, which takes one instruction. Replicating the vector takes a minimum of 1 instruction.
You can do the whole thing in four instructions if it is acceptable to have two assignment statements. I think it might take 6 instructions if you are only permitted to use a single assignment statement.
cheng en tsai
cheng en tsai il 2 Mar 2021
Thanks for replying.
If I want it to use only one assignment statement, how can I deal with it especially when n is odd?

Accedi per commentare.

Risposta accettata

Stephen23
Stephen23 il 2 Mar 2021
n = 9;
v = 2-mod(1:n,2)
v = 1×9
1 2 1 2 1 2 1 2 1
  3 Commenti
Stephen23
Stephen23 il 2 Mar 2021
Modificato: Stephen23 il 2 Mar 2021
@Walter Roberson: yes, I also noticed that.
I suspect that "instructions" is as equally well-defined by the same professors/tutors/teachers who also specify no "inbuilt" functions. In some sense, even the hard-coded numbers are "instructions" to the MATLAB parser.
Perhaps the person who set this assignment can clarify this for us.

Accedi per commentare.

Più risposte (1)

Matt J
Matt J il 2 Mar 2021
Modificato: Matt J il 2 Mar 2021
X=ones(1,n);
X(2:2:end)=2;

Tag

Prodotti


Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by