Assigning value to an element in vector

The problem is trivial but the code does not work. I wanted to replace 1 by -1 in a matrix
ip = [0 1 1 0;0 0 0 1]
X=find(ip == 1)
for i=1:length(X)
ip(X(i))=-1
end
But this does not work and is beyond my understanding. Is there any logical error here?

1 件のコメント

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 9 月 4 日
編集済み: Azzi Abdelmalek 2013 年 9 月 4 日
Your code is correct
Is there any error message? If not what is the result?

サインインしてコメントする。

回答 (1 件)

Walter Roberson
Walter Roberson 2013 年 9 月 4 日

0 投票

Runs correctly for me.
In your actual code, is it possible that what you really have for "1" is not an integer? For example if you were searching for 1.3 ? If so then

2 件のコメント

xplore29
xplore29 2013 年 9 月 4 日
this small script runs independently...thats true for mr as well. But in my big code this fails. And i am only dealing with integers and therefore getting into decimals is out of scope here.
i also tried
ip(ip==1)=-1
but this also fails in my main code.
James Tursa
James Tursa 2013 年 9 月 4 日
What do you get for this:
isequal(fix(ip),ip)

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

質問済み:

2013 年 9 月 4 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by