Creating [-1 1] matrix given length n

3 visualizaciones (últimos 30 días)
Alice Zurock
Alice Zurock el 22 de Mzo. de 2020
Editada: Ameer Hamza el 24 de Mzo. de 2020
Hi,
I want to create N length long [-1 1] matrix,
For example: Length=2
Output:
[ 1 1
1 -1
-1 1
-1 -1]
Length = 3
Output:
[ 1 1 1
1 1 -1
1 -1 1
-1 1 1
......
-1 -1 -1]
And so on, How can do that?

Respuesta aceptada

Sriram Tadavarty
Sriram Tadavarty el 22 de Mzo. de 2020
Hi Alice,
You can try the following:
len = 2;
N = 2^len;
bi = de2bi(N-1:-1:0); % Convert decimal numbers in to binary
bi(bi==0) = -1; % Replace the values of 0 with -1
Hope this helps.
Regards,
Sriram
  1 comentario
Sriram Tadavarty
Sriram Tadavarty el 22 de Mzo. de 2020
Hi Alice,
If the answer is helpful for the question asked, do accept the answer. I suggest you to start a new question for this. Anyhow i can provide some insights of how this can be done here.
To perform the circular shift, you can use circshift function. To iterate the same for multiple times, use a for loop.
For example, for row selected
row = [1 -1 1];
crow = circshift(row,1); % This will provide the value of [1 1 -1]
% Now perform the element wise matrix multiplication and add them
out = sum(row.*crow); % This will give you the -1
% Based on out, display the string accordingly
Hope this helps.
Regards,
Sriram

Iniciar sesión para comentar.

Más respuestas (1)

Ameer Hamza
Ameer Hamza el 22 de Mzo. de 2020
Editada: Ameer Hamza el 22 de Mzo. de 2020
See combvec():
Length = 3;
x = mat2cell(repmat([1 -1], Length, 1), ones(Length,1), 2);
out = combvec(x{:})';

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by