フィルターのクリア

Help doing the average between successive (1,2) cells of two different arrays?

1 回表示 (過去 30 日間)
Jacob
Jacob 2014 年 3 月 30 日
編集済み: Azzi Abdelmalek 2014 年 3 月 30 日
Hi! I have a (250,2) array and i divide that array in two array: one contains the even rows and the other the odd rows. Those coordinates are points and i want to find the mid point of those two points(the odd one and the even one, between 1 and 2, then between 2 and 3, then between 3 and 4, and so on...) Is there a way to do this?
Thank you very much

採用された回答

Image Analyst
Image Analyst 2014 年 3 月 30 日
編集済み: Image Analyst 2014 年 3 月 30 日
Try this:
a = rand(250, 2); % Sample data
% Make kernel to do the averaging.
kernel = [1;1]/2;
% Make every row of b the average or two adjacent rows of a.
b = conv2(a, kernel, 'valid')
It give you exactly what you're asking for. With your example data:
a =
4 3
2 2
3 3
4 2
b =
3 2.5
2.5 2.5
3.5 2.5

その他の回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2014 年 3 月 30 日
編集済み: Azzi Abdelmalek 2014 年 3 月 30 日
a=rand(250,2)
a1=a(1:2:end,:);
a2=a(2:2:end,:);
b=(a2+a1)/2
  4 件のコメント
Jacob
Jacob 2014 年 3 月 30 日
編集済み: Azzi Abdelmalek 2014 年 3 月 30 日
clc
clear
a=ceil(4*rand(4,2))
a1=a(1:2:end,:)
a2=a(2:2:end,:)
b(1,:)=(a(1,:)+a(2,:))/2;
b(2,:)=(a(3,:)+a(2,:))/2;
b(3,:)=(a(3,:)+a(4,:))/2
Output=
a= 4 3
2 2
3 3
4 2
a1 =4 3
3 3
a2=2 2
4 2
b = 3.0000 2.5000
2.5000 2.5000
3.5000 2.5000
Which is exactly what I need but i need a formula to extend this to 250 rows(panels with 251 points connecting them)
Azzi Abdelmalek
Azzi Abdelmalek 2014 年 3 月 30 日
編集済み: Azzi Abdelmalek 2014 年 3 月 30 日
I think you need this
a =[ 4 3
2 2
3 3
4 2]
a1=a(1:end-1,:)
a2=a(2:end,:,:)
b=(a1+a2)/2

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

カテゴリ

Help Center および File ExchangeElementary Polygons についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by