我正在做一個項目建模,圍繞意大利麪醬的流程,使用稱爲的斯托克斯流的BEMLIB代碼prtcl_3d_ss_visualize.m可從「http://dehesa.freeshell.org/BEMLIB/」獲得。下面是代碼:MATLAB:???在一個賦值A(I)= B中,B和I中的元素數必須相同
%---
file2 = fopen('prtcl_3d_ss_visualize.m')
Npnt = fscanf(file2,'%f',[1,1])
Nvert = fscanf(file2,'%f',[1,1])
Nface = fscanf(file2,'%f',[1,1])
vert = fscanf(file2,'%f',[3,Nvert]);
wall = fscanf(file2,'%f',[1,1])
fclose(file2)
%---
for i=1:Nvert
save = vert(2,i);
vert(2,i) = vert(3,i);
vert(3,i) = save;
end
Ic=0;
for i=1:Nface
for j=1:Npnt
Ic=Ic+1;
fac(j,i) = Ic;
end
end
patch('faces',Nfac’,'vertices',vert’,...
'FaceColor','y',...
'FaceLighting','phong',...
'BackFaceLighting','lit')
%light('Position',[1 3 2]);
%light('Position',[-3 -1 3]);
%material dull
%material shiny
%axis vis3d off
axis([-1.5 1.5 -1.5 1.5 -0.5 2.5 ])
%view(45,34)
xlabel('x')
ylabel('z')
zlabel('y')
xw(1)=-1.5; zw(1)=-1.5; yw(1)=wall;
xw(2)= 1.5; zw(2)=-1.5; yw(2)=wall;
xw(3)= 1.5; zw(3)= 1.5; yw(3)=wall;
xw(4)=-1.5; zw(4)= 1.5; yw(4)=wall;
xw(5)=-1.5; zw(5)=-1.5; yw(5)=wall;
patch(xw,zw,yw,yw);
hold off
輸入查詢MATLAB中的代碼時,我遇到了幾個錯誤,其中第一個我解決了不斷變化的fopen(「prtcl_3d」)給fopen(「partcl_3d_ss_visualize.m」),這是名他檔案。 我碰到了第二誤差是其中I輸入
patch('faces',Nfac’,'vertices',vert’,...
'FaceColor','y',...
'FaceLighting','phong',...
'BackFaceLighting','lit')
NFAC」被orighinally fac'but我得到錯誤‘???未定義函數或變量FAC’所以我改成了已定義的變量NFAC。
我現在面臨的問題是代碼的最後部分。當我輸入的第一行
xw(1)=-1.5; zw(1)=-1.5; yw(1)=wall;
我得到的錯誤消息:「???在一個分配A(I)= B,B中的元素數量,我必須是相同的。」
我得到這個xw,zw,yw其餘部分的輸入,我做錯了什麼?
非常感謝,
阿基洛夫
非常感謝你,我是編碼新手(很清楚),並且可能比我能咀嚼更多,你的回答非常有幫助。 – AkilMATLAB