MATLAB: How to edit matrice to another matrice

image analysisMATLAB

% how to edit matrice A to matrice B with
% A=[1 a b c
% 2 d e f
% 3 g h i];
% %
% B=[ 1 a b 0
% 2 b c 0
% 3 c a 0
% 4 d e 0
% 5 e f 0
% 6 f d 0
% ...
% 9 i g 0 ]
%% I have a code for this but it's not work
A=[1 a b c; 2 d e f; 3 g h i];
[m,n]=size(A);
B=zeros(3*m,n);
for i=1:3*m
B(i,1)=i;
B(i,4)=0;
end
for k=1:3
for i=1:3:3*m
B(i,2)=A(k,2);
B(i,3)=A(k,3);
end
for i=2:3:3*m
B(i,2)=A(k,3);
B(i,3)=A(k,4);
end
for i=3:3:3*m
B(i,2)=A(k,4);
B(i,3)=A(k,2);
end
end
B

Best Answer

  • Hi Ahdia,
    To perform just what you have asked for, you can do something as below:
    a = 10;
    b = 20;
    c = 30;
    d = 40;
    e = 50;
    f = 60;
    g = 70;
    h = 80;
    i = 80;
    A=[1 a b c; 2 d e f; 3 g h i];
    Atemp = A(:,2:end); % Extacting the different variables
    ACTemp = circshift(Atemp,-1,2); % Performing the circular shift
    CTemp = [Atemp ACTemp]; % Combine both matrices and extract the respective indices
    BTemp = reshape([CTemp(:,1:3:end) CTemp(:,2:3:end) CTemp(:,3:3:end)]',[],1);
    B = zeros(9,4);
    B(:,1) = 1;
    B(:,2) = BTemp(1:2:end);
    B(:,3) = BTemp(2:2:end);
    Hope this helps.
    Regards,
    Sriram