create symbolic expressions when using ndgrid

1 Ansicht (letzte 30 Tage)
Qun Wu
Qun Wu am 8 Feb. 2017
Kommentiert: Qun Wu am 17 Mär. 2017
I try to use function Ndgrid to get the grid coordinators.
Such as
[X1,X2,X3,...,Xn] = ndgrid(x1gv,x2gv,x3gv,...,xngv)
Suppose that the grid vectors are as each columns in a matrix M of size m-by-n.
Can someone help me to get the expression in the brackets, i.e. x1gv,x2gv,x3gv,...,xngv, please?
Thank you.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 16 Mär. 2017
[m, n] = size(M);
temp = mat2cell(M, m, ones(1, n) );
[X{1:n}] = ndgrid(temp{:});
temp2 = cellfun(@(v) v(:), X, 'uniform', 0);
result = horzcat(temp2{:});
  1 Kommentar
Qun Wu
Qun Wu am 17 Mär. 2017
Thank you so much, I thought the question has gone with wind.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Karan Gill
Karan Gill am 13 Feb. 2017
If I understand correctly, you are trying to do something like this?
>> A = sym('A%d',[1 4]);
B = sym('B%d',[1 4]);
>> [D1,D2] = ndgrid(A,B)
D1 =
[ A1, A1, A1, A1]
[ A2, A2, A2, A2]
[ A3, A3, A3, A3]
[ A4, A4, A4, A4]
D2 =
[ B1, B2, B3, B4]
[ B1, B2, B3, B4]
[ B1, B2, B3, B4]
[ B1, B2, B3, B4]
  1 Kommentar
Qun Wu
Qun Wu am 16 Mär. 2017
Not really, thanks anyway. I learned a trick from the answer.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by