How can I generalise this?
Show older comments
My manual copies of rows code works. but im trying to generalise it into a working algorithm. How do i generalise this?
n = 12
m = n(n-1)/2;
n = 64^2;
S = zeros(m,n);
SFull = zeros(2*m,n);
SFull(1:11,:) = S(1:11,:);
SFull(12,:) = S(1,:);
SFull(13:22,:) = S(12:21,:);
SFull(23,:) = S(2,:);
SFull(24,:) = S(12,:);
SFull(25:33,:) = S(22:30,:);
SFull(34,:) = S(3,:);
SFull(35,:) = S(13,:);
SFull(36,:) = S(22,:);
SFull(37:44,:) = S(31:38,:);
SFull(45,:) = S(4,:);
SFull(46,:) = S(14,:);
SFull(47,:) = S(23,:);
SFull(48,:) = S(31,:);
SFull(49:55,:) = S(39:45,:);
SFull(56,:) = S(5,:);
SFull(57,:) = S(15,:);
SFull(58,:) = S(24,:);
SFull(59,:) = S(32,:);
SFull(60,:) = S(39,:);
SFull(61:66,:) = S(46:51,:);
SFull(67,:) = S(6,:);
SFull(68,:) = S(16,:);
SFull(69,:) = S(25,:);
SFull(70,:) = S(33,:);
SFull(71,:) = S(40,:);
SFull(72,:) = S(46,:);
SFull(73:77,:) = S(52:56,:);
SFull(78,:) = S(7,:);
SFull(79,:) = S(17,:);
SFull(80,:) = S(26,:);
SFull(81,:) = S(34,:);
SFull(82,:) = S(41,:);
SFull(83,:) = S(47,:);
SFull(84,:) = S(52,:);
SFull(85:88,:) = S(57:60,:);
SFull(89,:) = S(8,:);
SFull(90,:) = S(18,:);
SFull(91,:) = S(27,:);
SFull(92,:) = S(35,:);
SFull(93,:) = S(42,:);
SFull(94,:) = S(48,:);
SFull(95,:) = S(53,:);
SFull(96,:) = S(57,:);
SFull(97:99,:) = S(61:63,:);
SFull(100,:) = S(9,:);
SFull(101,:) = S(19,:);
SFull(102,:) = S(28,:);
SFull(103,:) = S(36,:);
SFull(104,:) = S(43,:);
SFull(105,:) = S(49,:);
SFull(106,:) = S(54,:);
SFull(107,:) = S(58,:);
SFull(108,:) = S(61,:);
SFull(109:110,:) = S(64:65,:);
SFull(111,:) = S(10,:);
SFull(112,:) = S(20,:);
SFull(113,:) = S(29,:);
SFull(114,:) = S(37,:);
SFull(115,:) = S(44,:);
SFull(116,:) = S(50,:);
SFull(117,:) = S(55,:);
SFull(118,:) = S(59,:);
SFull(119,:) = S(62,:);
SFull(120,:) = S(64,:);
SFull(121,:) = S(66,:);
SFull(122,:) = S(11,:);
SFull(123,:) = S(21,:);
SFull(124,:) = S(30,:);
SFull(125,:) = S(38,:);
SFull(126,:) = S(45,:);
SFull(127,:) = S(51,:);
SFull(128,:) = S(56,:);
SFull(129,:) = S(60,:);
SFull(130,:) = S(63,:);
SFull(131,:) = S(65,:);
SFull(132,:) = S(66,:);
3 Comments
Muhammad Nazmi Bin Mohd Ropi
on 8 Feb 2023
Sulaymon Eshkabilov
on 8 Feb 2023
It is all "0"s, what is the purpose?
Muhammad Nazmi Bin Mohd Ropi
on 9 Feb 2023
Answers (1)
Sarthak
on 7 Mar 2023
Hi,
To generalize your code into a working algorithm, you can use a loop to iterate over each row of your input matrix, and then copy the row to the output matrix if it meets the desired criteria.
Inside the loop, to copy the matrix ‘A’ row into ‘B’ matrix, use the following line of code:
B = [B; A(i,:)];
Categories
Find more on MATLAB in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!