簡體   English   中英

如何將x,y,z坐標輸入為矩陣內的單個元素?

[英]How do I input x,y,z co-ordinates as a single element inside a matrix?

我正在嘗試使用MATLAB代碼創建貝塞爾曲面。 為此,我必須以[[x1 y1] [x2 y2] [x3 y3]; [x4 y4] [x5 y5] [x6 y6]]的形式輸入坐標。 我已經嘗試過使用單元格數組,但是在使用單元格數組時無法對其他矩陣或數組進行算術運算。 請幫忙舉例:

C=[[2 3] [3 4] [4 5] [5 6];[2 5] [5 2] [7 8] [8 9]];
A=C(1,3);
ans=[4 5]

C=[[2 3] [3 4] [4 5] [5 6];[2 5] [5 2] [7 8] [8 9]];
D=[1 2;2 1;3 1;2 3];
E=C*D
ans=[[30 38] [26 33];[49 51] [40 47]]

您可以嘗試使用cat(3,..)

C = cat(3,[[2 3] ;[3 4] ;[4 5]; [5 6]],[[2 5]; [5 2] ;[7 8] ;[8 9]]);
A = C(3,:,1)

您可以使用3D矩陣,其中第二個“層”是第二個坐標對,或者僅使用2個矩陣!

使用您的示例:

C1 = [2 3 4 5; 2 5 7 8];
C2 = [3 4 5 6; 5 2 8 9];
D = [1 2; 2 1; 3 1; 2 3];
E1 = C1*D; E2 = C2*D;

在3D矩陣中:

% Make 3D matrix of same size as C1 but 2 layers
C = zeros([size(C1), 2]);
C(:,:,1) = C1; C(:,:,2) = C2;
E = cat(3, C(:,:,1)*D, C(:,:,2)*D);
% ans is a 3D matrix, with the 2 layers representing the pairs in your example.

像想要的那樣索引3D矩陣:

C13 = reshape(C(1,3,:),1,2) % C13 = [4, 5] 
% or
C13 = squeeze(C(1,3,:))'    % C13 = [4, 5]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM