# How do I integrate this set of matrix data points

7 ビュー (過去 30 日間)
vishav Rattu 2017 年 2 月 24 日

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

サインインしてコメントする。

### 採用された回答

Massimo Zanetti 2017 年 2 月 24 日
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 件のコメント表示非表示 1 件の古いコメント
Massimo Zanetti 2017 年 2 月 24 日
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.
Check carefully trapz help page.

サインインしてコメントする。

### Community Treasure Hunt

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

Start Hunting!