Учитывая А является матрицей симметрии с размером п ипереставляют Матрица с заданным индексом
A =
1 2 3 4 5 % The Position
1 [0 5 2 4 1
2 5 0 3 0 2
3 2 3 0 0 0
4 4 0 0 0 5
5 1 2 0 5 0]
В представляет собой вектор-строка, переставлять матрица А строку и столбец
B = [2 4 1 5 3]
вывод, который я хочу является
C =
2 4 1 5 3 % The New Position given by Matrix B
2 [0 0 5 2 3
4 0 0 4 5 0
1 5 4 0 1 2
5 2 5 1 0 0
3 3 0 2 0 0]
я могу получить выход, используя простой цикл
index = [2,4,1,5,3];
C = zeros(5,5);
for i = 1:5
for j = 1:5
% Position of in square matrix n
% (i,j) = (i-1)*n + j
C(i,j) = A((index(i)-1)*5+index(j));
end
end
Однако, если я хочу переставить матрицу размером 80x80, тогда мне нужно запустить 1600 раз, чтобы получить выход. Есть ли какой-нибудь простой трюк, чтобы сделать это вместо использования цикла?
Это не работает, оно дает другой выход. –
Он действительно работает для меня –
@ ParagS.Chandakkar, жаль об этом. Он прав, только из-за моей опечатки, а затем получить еще один результат. – karfai