2017-10-14 3 views
0

Iは、以下の例のように論理引数からマトリックスを再構築しようとした:私はIndex exceeds matrix dimensionエラーを取得しかし改革マトリックス

a=rand(2,5) 
b=rand(2,5) 
c=a>b 

a(:,c)=b(:,c) 

。あらかじめマトリックスを再形成することなくこれを行うことができますか?

+0

私には、あなたは 'a(c)= b(c)'をしたかったようです。非ランダムな正確な入力とそれらの入力に期待される出力を提供すると、あなたの質問は現在のものよりも明確になります –

答えて

0

あなたは、各エントリトライのためにab、間に少なくとも値コピーしたい場合は:あなたが最大の価値をコピーしたい場合は

a=rand(2,5); 
b=rand(2,5); 


c = find(a>b); % c contains the position of value of the greatest val 
a(c)=b(c) % removes greates value copying a smaller value from b 

を変数cを作成するステートメントを変更します。

Index exceeds matrix dimensionsは、リスト:とマトリックスcのマトリックスディメンションとして使用しようとしているために発生します。 Findは、関係が満たされ、特定の値を呼び出すために使用できる値のリストを作成します。

関連する問題