我正在使用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维矩阵,但遇到了一些困难。有人能帮助我吗?
答案 0 :(得分:1)
我假设您要将3维矩阵的第2个分量设置为零。
您可以采用与二维情况相同的方式执行此操作。
A = ones(3,3,3) % Never use For Loops the way you did for operating on matrices.
A(:,2,:) = 0
答案 1 :(得分:1)
%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)
来合并第一步和第三步,但我认为这种方式更为明显。