Avoid for loops, use cell operation to do: r2' * r1 * l1' * l2
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi all,
Say I have 2 simple 1-by-2 cells, I'd like to perform operation like this: r2' * r1 * l1' * l2 to obtain a 2-by-2 matrix, sample code as follows:
clear; clc;
% the cells.
bl = {1 2};
br = {3 4};
% element 1.
l1 = bl{1, 1};
l2 = bl{1, 1};
r1 = br{1, 1};
r2 = br{1, 1};
otpt11 = r2' * r1 * l1' * l2;
% element 2.
l1 = bl{1, 2};
l2 = bl{1, 1};
r1 = br{1, 2};
r2 = br{1, 1};
otpt12 = r2' * r1 * l1' * l2;
% element 3.
l1 = bl{1, 1};
l2 = bl{1, 2};
r1 = br{1, 1};
r2 = br{1, 2};
otpt21 = r2' * r1 * l1' * l2;
% element 4.
l1 = bl{1, 2};
l2 = bl{1, 2};
r1 = br{1, 2};
r2 = br{1, 2};
otpt22 = r2' * r1 * l1' * l2;
% put all elements together.
otpt = [otpt11 otpt12; otpt21 otpt22];
I can probably use for loops to do it, but I'd like to use a compact operation such as cellfun to do it, which I believe is faster and more nature for cells.
Many thanks!
Réponses (0)
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!