could anyone help me how to display all the numbers inaddition to the numbers present.
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
jaah navi
am 19 Sep. 2019
Beantwortet: Stephen23
am 19 Sep. 2019
I a having a system with maximum number of users to be 6.
A =[1 2;
1 3;
2 5;
2 4;
3 5;
4 6
4 5]
In each row i can get only two numbers out of 6.
But i want to display all the numbers in each row of the matrix in the following manner
[1 2 3 4 5 6;
1 3 2 4 5 6;
2 5 1 3 4 6;
2 4 1 3 5 6;
3 5 1 2 4 6;
4 6 1 2 3 5;
4 5 1 2 3 4]
So I want to reshape the matrix A inorder to get the above matrix
Could anyone please help me on this.
0 Kommentare
Akzeptierte Antwort
Stephen23
am 19 Sep. 2019
>> A = [1,2;1,3;2,5;2,4;3,5;4,6;4,5]
A =
1 2
1 3
2 5
2 4
3 5
4 6
4 5
>> F = @(v)[v,setdiff(1:6,v)];
>> M = cell2mat(cellfun(F,num2cell(A,2),'uni',0))
M =
1 2 3 4 5 6
1 3 2 4 5 6
2 5 1 3 4 6
2 4 1 3 5 6
3 5 1 2 4 6
4 6 1 2 3 5
4 5 1 2 3 6
0 Kommentare
Weitere Antworten (1)
darova
am 19 Sep. 2019
I'd divide you task in several steps:
- Use for loop to consider each row separately
- Use ismember() to identificate which numbers (1:6) are members of a current row
- Add to the current row number that are not members
5 Kommentare
Adam
am 19 Sep. 2019
Why are you using randperm? setdiff should return 4 values for each row, which should be assigned (in the order they are returned, so far as I can see from what you want) as columns 3 to 6 or that row of the result matrix.
Siehe auch
Kategorien
Mehr zu Stability Analysis 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!