Using good method to produce a regular matrix
$begingroup$
The matrixform is as follow, and how can I use good method to produce it?
H = {{1, 1, 0}, {2, 2, 0}, {0, 1, 1},
{0, 2, 2}, {1, 0, 1}, {2, 0, 2}}
list-manipulation matrix array
$endgroup$
|
show 4 more comments
$begingroup$
The matrixform is as follow, and how can I use good method to produce it?
H = {{1, 1, 0}, {2, 2, 0}, {0, 1, 1},
{0, 2, 2}, {1, 0, 1}, {2, 0, 2}}
list-manipulation matrix array
$endgroup$
$begingroup$
If the picture can't show,then here is the matrixform:H={{1,1,0},{2,2,0},{0,1,1},{0,2,2},{1,0,1},{2,0,2}}
$endgroup$
– KarryMa
Apr 6 at 9:22
$begingroup$
KroneckerProduct[ MapThread[ ReplacePart[#1, #2 -> 0] &, {ConstantArray[1, {3, 3}], RotateRight[Range[3]]}], {{1}, {2}} ]
$endgroup$
– Henrik Schumacher
Apr 6 at 9:25
$begingroup$
Great,thank you very much!
$endgroup$
– KarryMa
Apr 6 at 9:26
$begingroup$
OrNormal@KroneckerProduct[ SparseArray[{Band[{1, 1}] -> 1, Band[{1, 2}] -> 1, Band[{3, 1}] -> 1}, {3, 3}], {{1}, {2}} ].
$endgroup$
– Henrik Schumacher
Apr 6 at 9:27
3
$begingroup$
Transpose@KroneckerProduct[Permutations[{1, 0, 1}], {1, 2}]
$endgroup$
– LouisB
Apr 6 at 9:45
|
show 4 more comments
$begingroup$
The matrixform is as follow, and how can I use good method to produce it?
H = {{1, 1, 0}, {2, 2, 0}, {0, 1, 1},
{0, 2, 2}, {1, 0, 1}, {2, 0, 2}}
list-manipulation matrix array
$endgroup$
The matrixform is as follow, and how can I use good method to produce it?
H = {{1, 1, 0}, {2, 2, 0}, {0, 1, 1},
{0, 2, 2}, {1, 0, 1}, {2, 0, 2}}
list-manipulation matrix array
list-manipulation matrix array
edited Apr 7 at 13:06
MarcoB
38.8k558116
38.8k558116
asked Apr 6 at 9:18
KarryMaKarryMa
163
163
$begingroup$
If the picture can't show,then here is the matrixform:H={{1,1,0},{2,2,0},{0,1,1},{0,2,2},{1,0,1},{2,0,2}}
$endgroup$
– KarryMa
Apr 6 at 9:22
$begingroup$
KroneckerProduct[ MapThread[ ReplacePart[#1, #2 -> 0] &, {ConstantArray[1, {3, 3}], RotateRight[Range[3]]}], {{1}, {2}} ]
$endgroup$
– Henrik Schumacher
Apr 6 at 9:25
$begingroup$
Great,thank you very much!
$endgroup$
– KarryMa
Apr 6 at 9:26
$begingroup$
OrNormal@KroneckerProduct[ SparseArray[{Band[{1, 1}] -> 1, Band[{1, 2}] -> 1, Band[{3, 1}] -> 1}, {3, 3}], {{1}, {2}} ].
$endgroup$
– Henrik Schumacher
Apr 6 at 9:27
3
$begingroup$
Transpose@KroneckerProduct[Permutations[{1, 0, 1}], {1, 2}]
$endgroup$
– LouisB
Apr 6 at 9:45
|
show 4 more comments
$begingroup$
If the picture can't show,then here is the matrixform:H={{1,1,0},{2,2,0},{0,1,1},{0,2,2},{1,0,1},{2,0,2}}
$endgroup$
– KarryMa
Apr 6 at 9:22
$begingroup$
KroneckerProduct[ MapThread[ ReplacePart[#1, #2 -> 0] &, {ConstantArray[1, {3, 3}], RotateRight[Range[3]]}], {{1}, {2}} ]
$endgroup$
– Henrik Schumacher
Apr 6 at 9:25
$begingroup$
Great,thank you very much!
$endgroup$
– KarryMa
Apr 6 at 9:26
$begingroup$
OrNormal@KroneckerProduct[ SparseArray[{Band[{1, 1}] -> 1, Band[{1, 2}] -> 1, Band[{3, 1}] -> 1}, {3, 3}], {{1}, {2}} ].
$endgroup$
– Henrik Schumacher
Apr 6 at 9:27
3
$begingroup$
Transpose@KroneckerProduct[Permutations[{1, 0, 1}], {1, 2}]
$endgroup$
– LouisB
Apr 6 at 9:45
$begingroup$
If the picture can't show,then here is the matrixform:H={{1,1,0},{2,2,0},{0,1,1},{0,2,2},{1,0,1},{2,0,2}}
$endgroup$
– KarryMa
Apr 6 at 9:22
$begingroup$
If the picture can't show,then here is the matrixform:H={{1,1,0},{2,2,0},{0,1,1},{0,2,2},{1,0,1},{2,0,2}}
$endgroup$
– KarryMa
Apr 6 at 9:22
$begingroup$
KroneckerProduct[ MapThread[ ReplacePart[#1, #2 -> 0] &, {ConstantArray[1, {3, 3}], RotateRight[Range[3]]}], {{1}, {2}} ]$endgroup$
– Henrik Schumacher
Apr 6 at 9:25
$begingroup$
KroneckerProduct[ MapThread[ ReplacePart[#1, #2 -> 0] &, {ConstantArray[1, {3, 3}], RotateRight[Range[3]]}], {{1}, {2}} ]$endgroup$
– Henrik Schumacher
Apr 6 at 9:25
$begingroup$
Great,thank you very much!
$endgroup$
– KarryMa
Apr 6 at 9:26
$begingroup$
Great,thank you very much!
$endgroup$
– KarryMa
Apr 6 at 9:26
$begingroup$
Or
Normal@KroneckerProduct[ SparseArray[{Band[{1, 1}] -> 1, Band[{1, 2}] -> 1, Band[{3, 1}] -> 1}, {3, 3}], {{1}, {2}} ].$endgroup$
– Henrik Schumacher
Apr 6 at 9:27
$begingroup$
Or
Normal@KroneckerProduct[ SparseArray[{Band[{1, 1}] -> 1, Band[{1, 2}] -> 1, Band[{3, 1}] -> 1}, {3, 3}], {{1}, {2}} ].$endgroup$
– Henrik Schumacher
Apr 6 at 9:27
3
3
$begingroup$
Transpose@KroneckerProduct[Permutations[{1, 0, 1}], {1, 2}]$endgroup$
– LouisB
Apr 6 at 9:45
$begingroup$
Transpose@KroneckerProduct[Permutations[{1, 0, 1}], {1, 2}]$endgroup$
– LouisB
Apr 6 at 9:45
|
show 4 more comments
2 Answers
2
active
oldest
votes
$begingroup$
IntegerDigits[{12,24,4,8,10,20},3,3]
{{1,1,0},{2,2,0},{0,1,1},{0,2,2},{1,0,1},{2,0,2}}
also..
s = Transpose[Permutations /@ {{1, 1, 0}, {2, 2, 0}}];
Flatten[{{s[[1]]},Reverse@Rest@s},2]
{{1,1,0},{2,2,0},{0,1,1},{0,2,2},{1,0,1},{2,0,2}}
$endgroup$
2
$begingroup$
I like the answer,thanks!
$endgroup$
– KarryMa
Apr 6 at 9:55
$begingroup$
@KarryMa Alternatively toPadLeftyou can add3as 3rd argumentIntegerDigits[{12, 24, 4, 8, 10, 20}, 3, 3].
$endgroup$
– Coolwater
Apr 6 at 14:49
$begingroup$
yes, you are so right!
$endgroup$
– J42161217
Apr 6 at 14:51
add a comment |
$begingroup$
A nice tool for this job is ArrayFlatten[ ]
a = {{1}, {2}}
$left(
begin{array}{c}
1 \
2 \
end{array}
right)$
Not sure why your rows are ordered the way they are. Are you trying to have a non-zero diagonal?
{{a,a,0},{0,a,a},{a,0,a}}// ArrayFlatten
$left(
begin{array}{ccc}
1 & 1 & 0 \
2 & 2 & 0 \
0 & 1 & 1 \
0 & 2 & 2 \
1 & 0 & 1 \
2 & 0 & 2 \
end{array}
right)$
$endgroup$
$begingroup$
This is not the exact result the OP is asking. The order of the elements is different. Also the "permutation" solution is already posted in my answer
$endgroup$
– J42161217
Apr 6 at 14:58
$begingroup$
My purpose was to introduceArrayFlatten. Not enough info to algorithmically determine the order of perms.
$endgroup$
– MikeY
Apr 6 at 15:27
$begingroup$
Actually,this is the answer I originally wanted,then I will use ''PauliMatrix'' and ''Map'' to get what I want.Thank you for your help!
$endgroup$
– KarryMa
Apr 7 at 2:35
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "387"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f194717%2fusing-good-method-to-produce-a-regular-matrix%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
IntegerDigits[{12,24,4,8,10,20},3,3]
{{1,1,0},{2,2,0},{0,1,1},{0,2,2},{1,0,1},{2,0,2}}
also..
s = Transpose[Permutations /@ {{1, 1, 0}, {2, 2, 0}}];
Flatten[{{s[[1]]},Reverse@Rest@s},2]
{{1,1,0},{2,2,0},{0,1,1},{0,2,2},{1,0,1},{2,0,2}}
$endgroup$
2
$begingroup$
I like the answer,thanks!
$endgroup$
– KarryMa
Apr 6 at 9:55
$begingroup$
@KarryMa Alternatively toPadLeftyou can add3as 3rd argumentIntegerDigits[{12, 24, 4, 8, 10, 20}, 3, 3].
$endgroup$
– Coolwater
Apr 6 at 14:49
$begingroup$
yes, you are so right!
$endgroup$
– J42161217
Apr 6 at 14:51
add a comment |
$begingroup$
IntegerDigits[{12,24,4,8,10,20},3,3]
{{1,1,0},{2,2,0},{0,1,1},{0,2,2},{1,0,1},{2,0,2}}
also..
s = Transpose[Permutations /@ {{1, 1, 0}, {2, 2, 0}}];
Flatten[{{s[[1]]},Reverse@Rest@s},2]
{{1,1,0},{2,2,0},{0,1,1},{0,2,2},{1,0,1},{2,0,2}}
$endgroup$
2
$begingroup$
I like the answer,thanks!
$endgroup$
– KarryMa
Apr 6 at 9:55
$begingroup$
@KarryMa Alternatively toPadLeftyou can add3as 3rd argumentIntegerDigits[{12, 24, 4, 8, 10, 20}, 3, 3].
$endgroup$
– Coolwater
Apr 6 at 14:49
$begingroup$
yes, you are so right!
$endgroup$
– J42161217
Apr 6 at 14:51
add a comment |
$begingroup$
IntegerDigits[{12,24,4,8,10,20},3,3]
{{1,1,0},{2,2,0},{0,1,1},{0,2,2},{1,0,1},{2,0,2}}
also..
s = Transpose[Permutations /@ {{1, 1, 0}, {2, 2, 0}}];
Flatten[{{s[[1]]},Reverse@Rest@s},2]
{{1,1,0},{2,2,0},{0,1,1},{0,2,2},{1,0,1},{2,0,2}}
$endgroup$
IntegerDigits[{12,24,4,8,10,20},3,3]
{{1,1,0},{2,2,0},{0,1,1},{0,2,2},{1,0,1},{2,0,2}}
also..
s = Transpose[Permutations /@ {{1, 1, 0}, {2, 2, 0}}];
Flatten[{{s[[1]]},Reverse@Rest@s},2]
{{1,1,0},{2,2,0},{0,1,1},{0,2,2},{1,0,1},{2,0,2}}
edited Apr 6 at 14:52
answered Apr 6 at 9:29
J42161217J42161217
4,688324
4,688324
2
$begingroup$
I like the answer,thanks!
$endgroup$
– KarryMa
Apr 6 at 9:55
$begingroup$
@KarryMa Alternatively toPadLeftyou can add3as 3rd argumentIntegerDigits[{12, 24, 4, 8, 10, 20}, 3, 3].
$endgroup$
– Coolwater
Apr 6 at 14:49
$begingroup$
yes, you are so right!
$endgroup$
– J42161217
Apr 6 at 14:51
add a comment |
2
$begingroup$
I like the answer,thanks!
$endgroup$
– KarryMa
Apr 6 at 9:55
$begingroup$
@KarryMa Alternatively toPadLeftyou can add3as 3rd argumentIntegerDigits[{12, 24, 4, 8, 10, 20}, 3, 3].
$endgroup$
– Coolwater
Apr 6 at 14:49
$begingroup$
yes, you are so right!
$endgroup$
– J42161217
Apr 6 at 14:51
2
2
$begingroup$
I like the answer,thanks!
$endgroup$
– KarryMa
Apr 6 at 9:55
$begingroup$
I like the answer,thanks!
$endgroup$
– KarryMa
Apr 6 at 9:55
$begingroup$
@KarryMa Alternatively to
PadLeft you can add 3 as 3rd argument IntegerDigits[{12, 24, 4, 8, 10, 20}, 3, 3].$endgroup$
– Coolwater
Apr 6 at 14:49
$begingroup$
@KarryMa Alternatively to
PadLeft you can add 3 as 3rd argument IntegerDigits[{12, 24, 4, 8, 10, 20}, 3, 3].$endgroup$
– Coolwater
Apr 6 at 14:49
$begingroup$
yes, you are so right!
$endgroup$
– J42161217
Apr 6 at 14:51
$begingroup$
yes, you are so right!
$endgroup$
– J42161217
Apr 6 at 14:51
add a comment |
$begingroup$
A nice tool for this job is ArrayFlatten[ ]
a = {{1}, {2}}
$left(
begin{array}{c}
1 \
2 \
end{array}
right)$
Not sure why your rows are ordered the way they are. Are you trying to have a non-zero diagonal?
{{a,a,0},{0,a,a},{a,0,a}}// ArrayFlatten
$left(
begin{array}{ccc}
1 & 1 & 0 \
2 & 2 & 0 \
0 & 1 & 1 \
0 & 2 & 2 \
1 & 0 & 1 \
2 & 0 & 2 \
end{array}
right)$
$endgroup$
$begingroup$
This is not the exact result the OP is asking. The order of the elements is different. Also the "permutation" solution is already posted in my answer
$endgroup$
– J42161217
Apr 6 at 14:58
$begingroup$
My purpose was to introduceArrayFlatten. Not enough info to algorithmically determine the order of perms.
$endgroup$
– MikeY
Apr 6 at 15:27
$begingroup$
Actually,this is the answer I originally wanted,then I will use ''PauliMatrix'' and ''Map'' to get what I want.Thank you for your help!
$endgroup$
– KarryMa
Apr 7 at 2:35
add a comment |
$begingroup$
A nice tool for this job is ArrayFlatten[ ]
a = {{1}, {2}}
$left(
begin{array}{c}
1 \
2 \
end{array}
right)$
Not sure why your rows are ordered the way they are. Are you trying to have a non-zero diagonal?
{{a,a,0},{0,a,a},{a,0,a}}// ArrayFlatten
$left(
begin{array}{ccc}
1 & 1 & 0 \
2 & 2 & 0 \
0 & 1 & 1 \
0 & 2 & 2 \
1 & 0 & 1 \
2 & 0 & 2 \
end{array}
right)$
$endgroup$
$begingroup$
This is not the exact result the OP is asking. The order of the elements is different. Also the "permutation" solution is already posted in my answer
$endgroup$
– J42161217
Apr 6 at 14:58
$begingroup$
My purpose was to introduceArrayFlatten. Not enough info to algorithmically determine the order of perms.
$endgroup$
– MikeY
Apr 6 at 15:27
$begingroup$
Actually,this is the answer I originally wanted,then I will use ''PauliMatrix'' and ''Map'' to get what I want.Thank you for your help!
$endgroup$
– KarryMa
Apr 7 at 2:35
add a comment |
$begingroup$
A nice tool for this job is ArrayFlatten[ ]
a = {{1}, {2}}
$left(
begin{array}{c}
1 \
2 \
end{array}
right)$
Not sure why your rows are ordered the way they are. Are you trying to have a non-zero diagonal?
{{a,a,0},{0,a,a},{a,0,a}}// ArrayFlatten
$left(
begin{array}{ccc}
1 & 1 & 0 \
2 & 2 & 0 \
0 & 1 & 1 \
0 & 2 & 2 \
1 & 0 & 1 \
2 & 0 & 2 \
end{array}
right)$
$endgroup$
A nice tool for this job is ArrayFlatten[ ]
a = {{1}, {2}}
$left(
begin{array}{c}
1 \
2 \
end{array}
right)$
Not sure why your rows are ordered the way they are. Are you trying to have a non-zero diagonal?
{{a,a,0},{0,a,a},{a,0,a}}// ArrayFlatten
$left(
begin{array}{ccc}
1 & 1 & 0 \
2 & 2 & 0 \
0 & 1 & 1 \
0 & 2 & 2 \
1 & 0 & 1 \
2 & 0 & 2 \
end{array}
right)$
edited Apr 6 at 15:25
answered Apr 6 at 13:21
MikeYMikeY
3,828916
3,828916
$begingroup$
This is not the exact result the OP is asking. The order of the elements is different. Also the "permutation" solution is already posted in my answer
$endgroup$
– J42161217
Apr 6 at 14:58
$begingroup$
My purpose was to introduceArrayFlatten. Not enough info to algorithmically determine the order of perms.
$endgroup$
– MikeY
Apr 6 at 15:27
$begingroup$
Actually,this is the answer I originally wanted,then I will use ''PauliMatrix'' and ''Map'' to get what I want.Thank you for your help!
$endgroup$
– KarryMa
Apr 7 at 2:35
add a comment |
$begingroup$
This is not the exact result the OP is asking. The order of the elements is different. Also the "permutation" solution is already posted in my answer
$endgroup$
– J42161217
Apr 6 at 14:58
$begingroup$
My purpose was to introduceArrayFlatten. Not enough info to algorithmically determine the order of perms.
$endgroup$
– MikeY
Apr 6 at 15:27
$begingroup$
Actually,this is the answer I originally wanted,then I will use ''PauliMatrix'' and ''Map'' to get what I want.Thank you for your help!
$endgroup$
– KarryMa
Apr 7 at 2:35
$begingroup$
This is not the exact result the OP is asking. The order of the elements is different. Also the "permutation" solution is already posted in my answer
$endgroup$
– J42161217
Apr 6 at 14:58
$begingroup$
This is not the exact result the OP is asking. The order of the elements is different. Also the "permutation" solution is already posted in my answer
$endgroup$
– J42161217
Apr 6 at 14:58
$begingroup$
My purpose was to introduce
ArrayFlatten. Not enough info to algorithmically determine the order of perms.$endgroup$
– MikeY
Apr 6 at 15:27
$begingroup$
My purpose was to introduce
ArrayFlatten. Not enough info to algorithmically determine the order of perms.$endgroup$
– MikeY
Apr 6 at 15:27
$begingroup$
Actually,this is the answer I originally wanted,then I will use ''PauliMatrix'' and ''Map'' to get what I want.Thank you for your help!
$endgroup$
– KarryMa
Apr 7 at 2:35
$begingroup$
Actually,this is the answer I originally wanted,then I will use ''PauliMatrix'' and ''Map'' to get what I want.Thank you for your help!
$endgroup$
– KarryMa
Apr 7 at 2:35
add a comment |
Thanks for contributing an answer to Mathematica Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f194717%2fusing-good-method-to-produce-a-regular-matrix%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
$begingroup$
If the picture can't show,then here is the matrixform:H={{1,1,0},{2,2,0},{0,1,1},{0,2,2},{1,0,1},{2,0,2}}
$endgroup$
– KarryMa
Apr 6 at 9:22
$begingroup$
KroneckerProduct[ MapThread[ ReplacePart[#1, #2 -> 0] &, {ConstantArray[1, {3, 3}], RotateRight[Range[3]]}], {{1}, {2}} ]$endgroup$
– Henrik Schumacher
Apr 6 at 9:25
$begingroup$
Great,thank you very much!
$endgroup$
– KarryMa
Apr 6 at 9:26
$begingroup$
Or
Normal@KroneckerProduct[ SparseArray[{Band[{1, 1}] -> 1, Band[{1, 2}] -> 1, Band[{3, 1}] -> 1}, {3, 3}], {{1}, {2}} ].$endgroup$
– Henrik Schumacher
Apr 6 at 9:27
3
$begingroup$
Transpose@KroneckerProduct[Permutations[{1, 0, 1}], {1, 2}]$endgroup$
– LouisB
Apr 6 at 9:45