簡體   English   中英

Matlab:在三維矩陣中放置零點

[英]Matlab: Placing Zeros In A Three Dimensional Matrix

我正在使用for循環來計算xy平面子集(方形網格)上的電勢。 這是代碼:

L=2;

for i=1:L
    for j=1:L
        for k=1:L
        V(i,j,k)= -10;
        end 
    end
end

其中L是xy平面子集的長度。 然而,我遇到的困難是我希望電勢的z分量為零,我只是希望xy平面中的區域非零。 我使用三個維度的原因是因為我最終將引入一個物體,該物體相對於平面處於不同的電位,即在平面上方。

我嘗試的是采用簡單的二維矩陣:

a =

     1     1     1
     1     1     1

並嘗試用零替換第二列中的那些,我通過鍵入(:,2)= 0來做,而matlab給了我

a =

     1     0     1
     1     0     1

然后我嘗試將其推廣到3維矩陣,但遇到了一些困難。 有人能幫助我嗎?

我假設您要將3維矩陣的第2個分量設置為零。

您可以采用與二維情況相同的方式執行此操作。

A = ones(3,3,3) % Never use For Loops the way you did for operating on matrices.
A(:,2,:) = 0
%allocate the matrix:
V=nan(L,L,L)
%fill z=0 with intended potential. Assign a scalar to have identical 
%values or a matrix to set individually
V(:,:,1)=-10
%set all other numbers to zero:
V(:,:,2:end)=0

您可以通過分配zeros(L,L,L)來合並第一步和第三步,但我認為這種方式更為明顯。

暫無
暫無

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

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