Creating [-1 1] matrix given length n

1 Ansicht (letzte 30 Tage)
Alice Zurock
Alice Zurock am 22 Mär. 2020
Bearbeitet: Ameer Hamza am 24 Mär. 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?

Akzeptierte Antwort

Sriram Tadavarty
Sriram Tadavarty am 22 Mär. 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 Kommentar
Sriram Tadavarty
Sriram Tadavarty am 22 Mär. 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Ameer Hamza
Ameer Hamza am 22 Mär. 2020
Bearbeitet: Ameer Hamza am 22 Mär. 2020
See combvec():
Length = 3;
x = mat2cell(repmat([1 -1], Length, 1), ones(Length,1), 2);
out = combvec(x{:})';

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by