2016-05-01 7 views
0

助けてください。私はいつも添え字を取得するインデックスは、私が "データ"に0の値を入れるたびに、正の整数または論理エラーでなければならない。どうすればそれを取り除くことができるのだろうか?ゼロ電圧(1,0)= 1があるときはいつでも、私は通過できません。Matlab添え字インデックスエラー

Voltage = [0 1 1 3 4 1; 1 0 5 4 5 3; 6 4 0 4 5 7; 9 3 4 0 6 4; 7 8 5 6 0 7; 4 5 6 7 3 0]; 
data =[0 2 3 4; 5 6 7 8; 2 3 4 5; 4 5 6 7; 3 4 5 6; 1 3 5 7; 1 2 3 4; 3 4 5 6]; 
Vm = data(:,1); 
Vn = data(:,2); 
R = data(:,3);`` 
X1 = data(:,4); 
sz=max(Vn) 
y=1:sz 
for Vm=data(:,1) 
    if Vm==0 
     Voltage(y,Vm)=1 
     Voltage(y,Vm)=logical(Voltage(y,Vm)); 
     Current = Voltage(y,Vm)-Voltage(y,Vn); 
    else Vm >= 1 
     Current = Voltage(y,Vm)-Voltage(y,Vn); 
    end 
end 

答えて

0

あなたはyを使用してVoltageマトリックス内の他の文で値を参照しようとしているが、yが、それは、配列(または1D行列)である整数ではありません。 yと表示すると、1 2 3 4 5 6と表示されます。

else Vm >= 1 
    disp(y) # `y` is not an integer and therefore not a valid index. 
    Current = Voltage(y,Vm)-Voltage(y,Vn); 

yが静的​​であるか、またはループに変更するべきかどうかを決定、それを修正するには:そのうちの1つは、問題のコードのいくつかのセクションがあります。

さらなる説明が必要な場合はお知らせください。

+0

あなたの助けてくれてありがとう、私はループ上で私の "y"を変更したいので、私は詳細な説明が必要です。私はそれで何ができるのか説明できますか? – well

+0

@wellどのように 'y'を変更したいですか?たとえば、else条件が満たされるたびに 'y'マトリックスの次の値を使用したいのですか? – EngineerCamp

+0

はい、それが好きです。 – well

関連する問題