Model of a matrix

8 views (last 30 days)
Stephanie Chahine
Stephanie Chahine on 29 Nov 2019
Answered: BhaTTa on 14 Jun 2024
How can I model the matrix of full permutation [(1,1,0,...,0) (-1,-1,0,...,0)] for n variables.

Answers (1)

BhaTTa
BhaTTa on 14 Jun 2024
To model a matrix of full permutation with (n) variables where each row is a permutation of ((1, 1, 0, \ldots, 0)) and ((-1, -1, 0, \ldots, 0)), you can follow a systematic approach. Since you're interested in permutations with exactly two non-zero elements (either both (1)s or both (-1)s) and the rest zeros, the number of such permutations for each case ((1)s or (-1)s) is (\binom{n}{2}), which is the number of ways to choose 2 positions out of (n) for the non-zero values.
Here's how you can achieve this in MATLAB:
Step 1: Generate the Basic Permutation Vectors
First, generate a basic vector for the (n) variables, which will be ([1, 1, 0, \ldots, 0]) and ([-1, -1, 0, \ldots, 0]), then find all permutations where exactly two positions are non-zero.
Step 2: Create a Function to Generate Unique Permutations
You need to generate all unique combinations of positions for the two non-zero values in the vector of length (n). Each combination will correspond to a row in the final matrix.
MATLAB Code Example
Here's a MATLAB function that generates the desired matrix for (n) variables:
function fullPermMatrix = generateFullPermutationMatrix(n)
% Initialize the matrix to hold the permutations
% There are n choose 2 combinations for each of 1s and -1s
numPerms = nchoosek(n, 2);
fullPermMatrix = zeros(2*numPerms, n);
% Generate combinations for positions of non-zeros
comb = nchoosek(1:n, 2);
% Fill the matrix with permutations for 1s
for i = 1:size(comb, 1)
% For 1s
fullPermMatrix(i, comb(i, :)) = 1;
% For -1s (starting after the 1s permutations)
fullPermMatrix(i + numPerms, comb(i, :)) = -1;
end
end
How to Use This Function
Call this function with your desired (n) to get the matrix:
n = 4; % Example for n = 4
fullPermMatrix = generateFullPermutationMatrix(n);
disp(fullPermMatrix);
Output
For (n = 4), the output will be a matrix where each row is a unique permutation of ([1, 1, 0, 0]) and ([-1, -1, 0, 0]) as per the specified criteria. The size of this matrix will be (2 \times \binom{n}{2}) by (n), reflecting all permutations of placing two (1)s and two (-1)s among zeros.
This approach ensures that you get a compact representation of all the required permutations for your problem.

Categories

Find more on Mathematics in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!