hold on
A=[1 2 3;3 4 5;4 5 6] ;
[I3,J3] = find(A==3);
[I4,J4] = find(A==4);
plot(I4,J4,'b.-','MarkerSize',30) %4就用藍色吧
plot(I3,J3,'r.-','MarkerSize',30)
把3和3連起來,4和4連起來
如果要把3和4都連起來,用下面這段代替最後兩句
plot(I4,J4,'b.','MarkerSize',30)
plot(I3,J3,'r.','MarkerSize',30)
plot(plot([I3;I4],[J3;J4]),'k-')
===================
要把數字標到圖上?
clf
hold on
A=[1 2 3;3 4 5;4 5 6] ;
[I3,J3] = find(A==3);
[I4,J4] = find(A==4);
plot(I4,J4,'b.','MarkerSize',30)
plot(I3,J3,'r.','MarkerSize',30)
plot([I3;I4],[J3;J4],'k-')
for ii =1:size(A,1)
for jj = 1:size(A,2)
text(ii,jj,num2str(A(ii,jj)),'FontSize',15)
end
end
axis off
===================
妳這段程序有兩個問題,壹個是開頭漏了hold on,這個命令用來保證後面的圖不會沖掉前面的。另外壹個出在這壹段:
for ii =1:size(A,1)
for jj = 1:size(A,2)
for kk = 1:size(A,3) %size(A)知道,size(A,1)是不是行數,size(A,2)是不是列數,那我這裏不
%知道size(A,3)是什麽了
text(ii,jj,kk,num2str(A(ii,jj,kk)),'FontSize',15) %kk也是我自己加的
end
end
size(A,n)指的是第n維的長度,所以1是行數,2是列數,3是三維數組的層數,對壹個二維數組A,引用三個下標的A(ii,jj,kk)就會出錯,而且這壹段妳少打了壹個end
clf
hold on
x=1;
y=2;
z=3;
A=[1 2 3 4 5 6 7 8 9
5 6 9 8 7 4 1 2 3
5 6 1 2 3 4 6 2 1
1 0 3 2 6 6 6 9 5];
[Ix,Jx] = find(A==x);
[Iy,Jy] = find(A==y);
[Iz,Jz] = find(A==z);
plot(Iy,Jy,'b.','MarkerSize',30)
plot(Ix,Jx,'r.','MarkerSize',30)
plot(Iz,Jz,'g.','MarkerSize',30)
for ii =1:size(A,1)
for jj = 1:size(A,2)
text(ii,jj,num2str(A(ii,jj)),'FontSize',15)
end
end
axis off
for ii = 1:length(Ix)
for jj = 1:length(Iy) %連接x,y
plot([Ix(ii),Iy(jj)],[Jx(ii),Jy(jj)])
end
for jj = 1:length(Iz) %連接x,z
plot([Ix(ii),Iz(jj)],[Jx(ii),Jz(jj)])
end
end
for ii = 1:length(Iy) %連接y,z
for jj = 1:length(Iz)
plot([Iy(ii),Iz(jj)],[Jy(ii),Jz(jj)])
end
end
學matlab的話,我個人的經驗是先找壹本比較簡單的書,把矩陣的基本操作,流程控制和常用的繪圖命令看個差不多。然後就是多用,用的過程中不會的地方就看help。那些四五百頁的大部頭書很多就是翻譯的help,當字典用還行,壹開始就去學的話很難看的進去。