ndgrid on matrices without the use of cell arrays

4 ビュー (過去 30 日間)
jack
jack 2015 年 12 月 23 日
コメント済み: jack 2015 年 12 月 24 日
Hi guys,
I need your help in solving the following problem:
Given a dxn matrix, do the following (preferably without the use of cells):
n is always even and d is also even.
Thanks in advance.
  2 件のコメント
James Tursa
James Tursa 2015 年 12 月 23 日
編集済み: James Tursa 2015 年 12 月 23 日
What is the general pattern? E.g., are the rows always split into 1x2 blocks, or are the rows split in half? Is n always even? You need to give us more information.
jack
jack 2015 年 12 月 23 日
編集済み: jack 2015 年 12 月 23 日
I have updated the question.
The aim is very similar to the problem stated by the following link: http://www.mathworks.com/matlabcentral/answers/258365-ndgrid-on-cell-array-of-vectors
but i need your help in solving it for matrices.

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

回答 (1 件)

Andrei Bobrov
Andrei Bobrov 2015 年 12 月 23 日
編集済み: Andrei Bobrov 2015 年 12 月 23 日
m = size(A,1); % A - your array
b = reshape(A,m,[],2);
[ii,jj] = ndgrid(1:m);
out2 = [b(jj(:),:,1),b(ii(:),:,2)]
  2 件のコメント
jack
jack 2015 年 12 月 24 日
編集済み: jack 2015 年 12 月 24 日
Your suggestion is good but it is not fully correct, to correct it change only b to :
b = reshape(A,m,[],size(A,2)/2);
and making the output of ndgrid a cell array.
jack
jack 2015 年 12 月 24 日
but how can i do it without cell arrays? i need a code that works for every even n and d = 2!!

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

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by