How do I integrate this set of matrix data points
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
vishav Rattu
el 24 de Feb. de 2017
Editada: Massimo Zanetti
el 24 de Feb. de 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 comentarios
Respuesta aceptada
Massimo Zanetti
el 24 de Feb. de 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 comentarios
Massimo Zanetti
el 24 de Feb. de 2017
Editada: Massimo Zanetti
el 24 de Feb. de 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.
Más respuestas (0)
Ver también
Categorías
Más información sobre Numerical Integration and Differentiation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!