объединение массивов - PullRequest
       22

объединение массивов

1 голос
/ 02 апреля 2012

Я написал код и застрял. В следующем коде я разбил полное изображение на блок 3 * 3. Вы можете видеть каждого дочернего элемента (1-8), скажем, я изменяю его только в этом дочернем (1-8) массиве. Есть ли способ объединить эти массивы (мать и ребенок 1-8), чтобы получить полный образ с изменением, которое я уже сделал

pd_x=imread(name_doc);
[pd_m,pd_n]=size(pd_x);
di_m=pd_m;
di_n=pd_n;

pd_rv=ceil(pd_m/3);
pd_cv=ceil(pd_n/3);

mother1=pd_x(1:pd_rv,1:pd_cv);
child1=pd_x(1:pd_rv,pd_cv:(pd_cv+pd_cv));
child2=pd_x(1:pd_rv,(pd_cv+pd_cv):pd_n);

child3=pd_x(pd_rv:(pd_rv+pd_rv),1:pd_cv);
child4=pd_x(pd_rv:(pd_rv+pd_rv),pd_cv:(pd_cv+pd_cv));
child5=pd_x(pd_rv:(pd_rv+pd_rv),(pd_cv+pd_cv):pd_n);

child6=pd_x((pd_rv+pd_rv):pd_m,1:pd_cv);
child7=pd_x((pd_rv+pd_rv):pd_m,pd_cv:(pd_cv+pd_cv));
child8=pd_x((pd_rv+pd_rv):pd_m,(pd_cv+pd_cv):pd_n);

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Если вы использовали метод, который я опубликовал в этом ответе , и все еще создали 4d матрицу, просто сделайте это:

mother1 = permute( mat4d, [ 1 3 2 4 ] );
mother1 = reshape( mother1, [ pd_rv pd_cv ] );

Но pd_rv и pd_cvследует рассчитывать с floor, а не с ceil, не так ли?

1 голос
/ 02 апреля 2012

Синтаксис для конкатенации следующий:

A = [12 62 93 -8 22; 16 2 87 43 91; -4 17 -72 95 6]
A =
    12    62    93    -8    22
    16     2    87    43    91
    -4    17   -72    95     6

Взято из http://www.mathworks.com/help/techdoc/math/f1-84864.html

Я также сделал базовый пример, определив первые v, v2 и v3:

>> v

v =

     1     2

>> v2

v2 =

     3     4

>> v3

v3 =

     5     6

Я делаю следующую конкатенацию, результат будет ...

>> m = [v v2 v3; v3 v2 v];
>> m

m =

     1     2     3     4     5     6
     5     6     3     4     1     2

Надеюсь, это поможет вам понять, как это работает !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...