column shuffling of a matrix

3 次查看(过去 30 天)
Please let me know if i want column shuffling instead of rows what changes i must need in this code.
% for the color image, for even rows and cols
% Need to perform switching of rows at each channel
A = imread('Untitled.png');
[m, n, c] = size(A);
temp= zeros(m,n);
for i = 1 : c
A1 = A(:, :, i);
a1 = A1(1 : m/2, :);
a2 = A1(end: -1 : m/2+1, :);
temp(1:2:end,:) = a1;
temp(2:2:end,:) = a2;
A(:, :, i) = temp;
end

采纳的回答

Andrei Bobrov
Andrei Bobrov 2015-3-12
编辑:Andrei Bobrov 2015-3-12
A = imread('Untitled.png');
m = size(A);
out = zeros(m);
m1 = round(m(2)/2);
out(:,1:2:end,:) = A(:,1:m1,:);
out(:,2:2:end,:) = A(:,end:-1:m1+1,:);

更多回答(1 个)

Michael Haderlein
Michael Haderlein 2015-3-12
编辑:Guillaume 2015-3-12
Please use the {}Code button to make your code readable.
If this code is sorting the rows in the manner you want, you can change it to do the same with columns this way:
A = imread('Untitled.png');
[m, n, c] = size(A);
temp= zeros(m,n);
for i = 1 : c
A1 = A(:, :, i);
a1 = A1(:, 1 : n/2);
a2 = A1(:, end: -1 : n/2+1);
temp(:, 1:2:end) = a1;
temp(:, 2:2:end) = a2;
A(:, :, i) = temp;
end

类别

Help CenterFile Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by