Elements of Array Should not be the Same

Hello,
I have this value for element of my list:
And I have this code:
function [A,B] = CHSHmeasurement(d)
A=zeros(d,d,2,d);
B=A;
projectors_of_sigma_x = [1/sqrt(2)*[1;1],1/sqrt(2)*[1;-1]];
for k = 1:d
for l =1:length(projectors_of_sigma_x)
%A(k,k,1,k)=projectors_of_sigma_x(l);
A(:,:,1,k)=projectors_of_sigma_x(l);
end
end
end
However I have the same element for A although I have the different elements in the projectors_of_sigma_x

2 件のコメント

madhan ravi
madhan ravi 2020 年 6 月 25 日
Please provide the full error message. And d?
Gözde Üstün
Gözde Üstün 2020 年 6 月 25 日
編集済み: Gözde Üstün 2020 年 6 月 25 日
There is no error message but as you can see I have different value for projectors_of_sigma_x = [1/sqrt(2)*[1;1],1/sqrt(2)*[1;-1]]; (v1 and v2 you can see from the images clearly) but for the A(:,:1,1) and A(:,:,1,2) I have the same matrix and d is = 2

サインインしてコメントする。

 採用された回答

madhan ravi
madhan ravi 2020 年 6 月 25 日
編集済み: madhan ravi 2020 年 6 月 25 日

1 投票

for k = 1:d
for l =1:d
A(:,:,1,k) = repmat(projectors_of_sigma_x(:,k), 1, d);
end
end
I suggest you to read https://www.mathworks.com/company/newsletters/articles/matrix-indexing-in-matlab.html , first deal with 2D matrices before dealing with higher dimension matrices.

4 件のコメント

Gözde Üstün
Gözde Üstün 2020 年 6 月 26 日
Ahh thank you very much I just saw your answer now !
Gözde Üstün
Gözde Üstün 2020 年 6 月 27 日
編集済み: Gözde Üstün 2020 年 6 月 28 日
Then we dont need to second for loop right?? or should I change k as l in this line repmat(projectors_of_sigma_x(:,k), 1, d); ?? @madhan ravi
I have a problem for d>2 (and d should be even) For d >2 the result should be block diagonal like that:
0.7071 0.7071 0 0
0.7071 0.7071 0 0
0 0 0.7071 0.7071
0 0 0.7071 0.7071
And I tried almost all combinations with blkdiag but I can't cope with it
for k = 1:d
for l =1:d
A(:,:,1,k) = repmat(projectors_of_sigma_x(:,k), 1, d);
if k > 2
A(:,:,1,k) = repmat({A(:,:,1,k)}, 1, d/2); %This line and the following line I am trying to create a matrix which is a blog diagonal of the previous result for even d and of course d>2
A(:,:,1,k) = blkdiag(A{:,:,1,k});
end
end
end
madhan ravi
madhan ravi 2020 年 6 月 28 日
When do you need ? I don't have time to analyse that sorry :( . I see that you have asked the same question already!
Gözde Üstün
Gözde Üstün 2020 年 6 月 28 日
Ahh no worries! I can wait (till the tuesday) Yeah I asked and each question includes different version of my combination because I have tried too many combiations

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeMultidimensional Arrays についてさらに検索

製品

リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by