How to perform right circular shift
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
sadiqa ilyas
am 4 Nov. 2019
Kommentiert: sadiqa ilyas
am 5 Nov. 2019
Hi. I have written a code to perform circular shift but it does not give me all X28 and Y28 keys . It returns only one X28 and Y28 with out any circular shift.What I did wrong
key_56=1:56;
x=key_56(1:28);
y=key_56(29:56);
R_key=[1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1];
icount=0;
for i=1:16
icount=icount+R_key(i);
I=icount;
end
%circular shift
X28 = circshift(x', -icount)';
Y28 = circshift(y', -icount)';
3 Kommentare
Walter Roberson
am 4 Nov. 2019
sum(R_key) is 28, so icount is 28. That is the same as the length of your data, so you are circular shifting each bit of data exactly to the same place it started.
Akzeptierte Antwort
Walter Roberson
am 4 Nov. 2019
key_56=1:56;
x=key_56(1:28);
y=key_56(29:56);
R_key=[1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1];
shift_counts = cumsum(R_key);
num_shifts = length(shift_counts);
x_shifted = zeros(num_shifts, length(x));
y_shifted = zeros(num_shifts, length(y));
for i = 1 : num_shifts
x_shifted(i, :) = circshift(x, -shift_counts(i));
y_shifted(i, :) = circshift(y, -shift_counts(i));
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Axis Labels 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!