<p>请编一个matlab函数,请只用一重for循环,两重for已做完程序如下</p><p>希望高手给予指导</p><p>判断矩阵A的列是否含有单位矩阵的列,若无,则增加这些列<br/>例如:</p><p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br/>% A =<br/>%<br/>% 1 2 0<br/>% 0 3 1<br/>% 2 0 0<br/>%<br/>%修改后的矩阵是<br/>%<br/>% B =<br/>%<br/>% 1 2 0 1 0<br/>% 0 3 1 0 0<br/>% 2 0 0 0 1<br/>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br/>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br/>% A =<br/>%<br/>% 1 2 0<br/>% 0 3 1<br/>%<br/>%修改后的矩阵是<br/>%<br/>% B =<br/>%<br/>% 1 2 0<br/>% 0 3 1<br/>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p><p>附程序:</p><p>function y=table(A)</p><p>% 判断矩阵A的列是否含有单位矩阵的列,若无,则增加这些列<br/>% Input - A M x N 矩阵<br/>% Output - B 修改后的矩阵</p><p>% Initialize parameters<br/>A = input('Input the Matrix A (M x N) = \n\n')<br/>[m,n] = size(A);<br/>E = eye(m);</p><p>flag1 = sum(A==1);<br/>flag2 = sum(A==0);<br/>num = [1:m];</p><p>for j=1:n<br/> if flag1(j)==1 && flag2(j)==(m-1) <br/> for i=1:m<br/> if E(:,i)-A(:,j)==0<br/> num(i)=0;<br/>end; end; end; end;</p><p>fprintf('修改后的矩阵是\n')<br/>B = [A E(:,num~=0)]</p>7 e5 c# x! ?( G/ I+ Z
[此贴子已经被作者于2007-4-10 12:39:24编辑过] |