Addition of numbers in array

3 ビュー (過去 30 日間)
Muhammad Usman
Muhammad Usman 2021 年 2 月 13 日
コメント済み: Steven Lord 2021 年 2 月 16 日
Lets' say I have 2 vectors:
x = [7 4 6];
y = [1 4 4];
But these are not just vector consider them as A number, i.e., 746 and 144. Now I want to add these numbers (as we do on paper, carry method).
so the answer should be 890.
and want display like:
7 4 6
1 4 4
-----
8 9 0
Please help me to code.
Thanks

採用された回答

Ameer Hamza
Ameer Hamza 2021 年 2 月 13 日
This is one way
x = [7 4 6];
y = [1 4 4];
z = sscanf(sprintf('%d',x),'%d')+sscanf(sprintf('%d',y),'%d')
  4 件のコメント
Steven Lord
Steven Lord 2021 年 2 月 16 日
Your numbers are too large to guarantee that they can be stored exactly as double precision numbers.
x = 96130549848139976391;
rem(x, 10) % ones digit
ans = 8
spacing = eps(x)
spacing = 16384
The spacing between consecutive representable numbers in the vicinity of x is 16,384. It is too large even to be stored exactly as a uint64 number.
y = uint64(96130549848139976391) % Saturated at intmax
y = uint64 18446744073709551615
You will need to store your numbers and perform calculations in arbitrary precision arithmetic, like in Symbolic Math Toolbox.
s = sym('96130549848139976391')
s = 
96130549848139976391

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

その他の回答 (0 件)

カテゴリ

Find more on Data Type Conversion in Help Center and File Exchange

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by