フィルターのクリア

Find function not working when trying to look for a big number

4 ビュー (過去 30 日間)
Rajesh
Rajesh 2012 年 11 月 26 日
Hello everyone, I have 2 matrices with the first column in each matrix which has the key records which link both the matrices. I'm trying to take "M_rec_qty_1" as my base matrix and trying to use the find function to check the records from each row in the first column to be present in the first column of "final_matrix".
If i find it, then i insert the row number, column number and the data i found in to one more matrix "pos_data_matrix", for further use in the code.
But the problem seems to be that the data i'm looking in final_matrix is really big.. for example... "5642007779", so when find tries to use this data it converts it into 5.642 * 10^9 and hence is not able to find an exact match and brings more vales in the same range. because of which the logic doesn't work. Can someone please help solving this issue.
Please find the for loop which i sue in the code below.
for m1r = 4:1000
[rownum,colnum] = find(final_matrix==M_rec_qty_1(m1r,1))
pos_data_matrix(m1r-3,1) = rownum;
pos_data_matrix(m1r-3,2) = colnum;
pos_data_matrix(m1r-3,3) = M_rec_qty_1(m1r,1);
endfor
Thanks Raj
  3 件のコメント
Rajesh
Rajesh 2012 年 11 月 26 日
Hello Daniel, The numer are whole numbers... there are no decimal points... the problem comes when it tries to compare lets say 5642007779 and 5642007780.... because it changes it into 5.64*10^9 for both cases... it assumes the data is equal.
Daniel Shub
Daniel Shub 2012 年 11 月 26 日
Are you sure? I get not equal with
x = 5642007779;
y = 5642007780;
isequal(x, y)

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

採用された回答

Jan
Jan 2012 年 11 月 26 日
5642007779 is not "large". The output "5.642 * 10^9" appears in the command window, but the internal storage is not affected. Try: "format long g" to influence the output in the command window. Further explanations can be found by: doc format

その他の回答 (1 件)

Andreas Goser
Andreas Goser 2012 年 11 月 26 日
Depending on your application you can work with INTEGER data types or work with comparing "between x-phi and x+phi boundaries".
  3 件のコメント
Andreas Goser
Andreas Goser 2012 年 11 月 26 日
Your profile is empty. I think it depends on what your situation is. Are you a computer science student? then you really should try to understand the underlying fundamentals of this behaviour. Are you are biologist researcher? Then you probably just need a solution without understanding each detail. But then we would a fully example inclusing data and not just a code fragement.
Rajesh
Rajesh 2012 年 11 月 26 日
Hello Andreas, sorry that i havent updated my profile yet.. i will update it soon..... but i had a problem with only formatting the output. as mentioned by Jan. Thank you very much for the response.

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

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by