How do I integrate this set of matrix data points
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
vishav Rattu
le 24 Fév 2017
Modifié(e) : Massimo Zanetti
le 24 Fév 2017
I have a matrix diffphi which is a 32x32 matrix. I want to integrate this using trapz in the following manner:
for every row namely k, I want to integrate diffphi(k,1:2) over 1:2 and , then diff(k,1:3) over 1:3, .... diff(k,1:32) over 1:32 then store all values in a new matrix called ophi which will be a 32x32 matrix. How should I do it?
Here is something that I tried:
if true
% code
end
ophi = zeros(32,32);
for h = 1:32
for d = 1:32
c = 1:d;
ophi(h,d) = trapz(c,diffphi(h,(1:d)));
end
end
But it shows the following error:
Error in ipermute (line 23) inverseorder(order) = 1:numel(order); % Inverse permutation order
Error in trapz (line 73)
Thanks in advance. if ~isempty(perm), z = ipermute(z,perm); end
0 commentaires
Réponse acceptée
Massimo Zanetti
le 24 Fév 2017
You just need one for loop as trapz operates also on matrices. This is the piece of code:
A = rand(32);
B = zeros(32);
for c = 1:size(A,2)
B(:,c) = trapz(1:c,A(:,1:c),2);
end
B
2 commentaires
Massimo Zanetti
le 24 Fév 2017
Modifié(e) : Massimo Zanetti
le 24 Fév 2017
The code above does EXACTLY what you need, it integrates every row by varying the row length and stroes everything in a 32x32 matrix B. You DON'T need two for loops.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Numerical Integration and Differentiation 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!