How can I generalise this?

1 view (last 30 days)
Muhammad Nazmi Bin Mohd Ropi
Answered: Sarthak on 7 Mar 2023
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
Sulaymon Eshkabilov
Sulaymon Eshkabilov on 8 Feb 2023
It is all "0"s, what is the purpose?
Muhammad Nazmi Bin Mohd Ropi
not zeros, i used fread not shown here.

Sign in to comment.

Answers (1)

Sarthak
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 Programming in Help Center and File Exchange

Tags

Products

Community Treasure Hunt

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

Start Hunting!