如何將matlab中的sym資料型別轉換為double型

2021-04-30 21:22:34 字數 4541 閱讀 4658

1樓:楊好巨蟹座

一般來說用dec2hex及hex2dec就可以。

ss='010600001388849c';

ssdec = hex2dec(ss);

sshex = dec2hex(ssdec);

format hex;

disp(sshex);

不過前提是你的機器能處理這麼大的數。

我用小一點的數比如說ss='01600001388849c'測試的結果是沒問題的,但是我的機器不能處理大於2^52的數,所以很抱歉無法完成你給出的這個例子。

***********************************=

補充回答:

拆分合並的方法試了試, 但是不知道你究竟要怎麼用,也沒有繼續;希望你能把問題描述的更詳細一點,特別是最終目的是幹什麼。

matlab中關於大數處理有幾個方法

1.呼叫maple核心運算,但是我的matlab版本中沒有;

2.拆分合並,ss(1)~ ss(16)依次對應'010600001388849c' 中的各個位上的數,可以考慮用上。

3.換ubuntu linux,可支援8g記憶體運算,也許可行。

4.實在沒有適合方法,就只能改演算法了。

你試試下面這樣的寫法可不可以:

a = [1; 06; 0; 0; 19; 136; 132; 156];

fwrite(s, a, 'char', 'async');

其中,a是對應你要輸入的'010600001388849c' 這個十六進位制數的十進位制表示,你用dec2hex(a)可以得到

0106

0000

1388

849c.

有可能還有問題,不過你可以嘗試在這個思路上再改改。

***********************************=

2樓:樊醉柳天致

可以直接使用double函式:

例子如下:

symn

=sym([pi

1/3]);

%生成一個符號矩陣

doublen

=double(symn)

%將符號矩陣轉換為double陣列

3樓:匿名使用者

使用double函式

比如>> root=solve('x^2+5*x-10')root =

matlab怎樣將sym型別的資料轉換成double型

4樓:尹南飛雪

第一種:

r = double(s) converts the symbolic object s to a numeric object r.

例子如下: double(sym('(1+sqrt(5))/2')))1.6180 1.6180

第二種:

r = vpa(a)

這適用於用solve等解方程時的結果。

構造一個sym型變數x:

>> x = sym('10')

x =10

檢視x的型別:

>> class(x)

ans =sym

轉換為double型:

>> y = double(x)

y =  10

檢視y的型別:

>> class(y)

ans =double

5樓:

這眼根據你的實際情況,給你幾種解決建議。

第一種:

r = double(s) converts the symbolic object s to a numeric object r.

例子如下:

double(sym('(1+sqrt(5))/2')))1.6180

1.6180

第二種:

r = vpa(a)

這適用於用solve等解方程時的結果。

覺得有幫助,就採納吧。

matlab怎樣將sym型別的資料轉換成double型

6樓:匿名使用者

可以直接使用double函式:

例子如下:

symn = sym([pi 1/3]); %生成一個符號矩陣doublen = double(symn) %將符號矩陣轉換為double陣列

請問如何將sym陣列轉換為double陣列呢

7樓:匿名使用者

你的sym陣列大到什麼程度不能用double轉換?

所謂【不能轉換】是報錯還是時間太久?

印象中(不是很確定),對於大sym陣列,對整個陣列操作有時候反而不如使用迴圈逐個元素處理的效率高,但好像沒遇到不能處理的情況。你可以試試迴圈的方式,如果還不行,請給出具體的例子來,才好幫你分析。

matlab中sym符號變數不是一個固定的數,怎麼轉變為double型別?

8樓:匿名使用者

你的這種寫法是不是有問題?比如 sym 可能應該是syms、j 這個變數是不必要的、syms 函式放在迴圈裡似乎不大好(雖然對結果應該沒什麼影響)。

至於轉變,賦值語句(sum=3之類)具有最高的許可權,會無視該變數原來是什麼。

另外,對符號變數及符號函式而言,subs——替換——比較常用,比如 y=x+1,z=subs(y,x,3)得到的結果是把 x 替換成 3 並計算,即 z = 4

9樓:匿名使用者

構造一個sym型變數x:

>> x = sym('10')

x =10

檢視x的型別:

>> class(x)

ans =sym

轉換為double型:

>> y = double(x)

y =10

檢視y的型別:

>> class(y)

ans =double

matlab中怎樣把sym型變數變為double型變數

10樓:匿名使用者

構造一個sym型變數x:

>> x = sym('10')

x =10

檢視x的型別:

>> class(x)

ans =

sym轉換為double型:

>> y = double(x)

y =10

檢視y的型別:

>> class(y)

ans =

double

11樓:匿名使用者

double(sym型變數)

double(x)

matlab怎樣將sym型別的資料轉換成double型?

12樓:尹南飛雪

第一種:

r = double(s) converts the symbolic object s to a numeric object r.

例子如下: double(sym('(1+sqrt(5))/2')))1.6180 1.6180

第二種:

r = vpa(a)

這適用於用solve等解方程時的結果。

構造一個sym型變數x:

>> x = sym('10')

x =10

檢視x的型別:

>> class(x)

ans =sym

轉換為double型:

>> y = double(x)

y =  10

檢視y的型別:

>> class(y)

ans =double

13樓:百小度

這眼根據你的實際情況,給你幾種解決建議。第一種: r=double(s)converts the symbolic object s to a numeric object r.

例子如下: double(sym('(1+sqrt(5))/2')))1.6180 1.

6180 第二種: r=vpa(a) 這...

這眼根據你的實際情況,給你幾種解決建議。第一種: r=double(s)converts the symbolic object s to a numeric object r.

例子如下: double(sym('(1+sqrt(5))/2')))1.6180 1.

6180 第二種: r=vpa(a) 這...

matlab中sym符號變數不是固定的數,怎麼轉變為do

你的這種寫法是不是有問題?比如 sym 可能應該是syms j 這個變數是不必要的 syms 函式放在迴圈裡似乎不大好 雖然對結果應該沒什麼影響 至於轉變,賦值語句 sum 3之類 具有最高的許可權,會無視該變數原來是什麼。另外,對符號變數及符號函式而言,subs 替換 比較常用,比如 y x 1,...

MATLAB中plot函式如何將座標系直線變粗

有linewidth這個引數可以設定,下面是matlab官方的例子x pi pi 10 pi y tan sin x sin tan x plot x,y,rs linewidth 2,markeredgecolor k marke cecolor g markersize 10 matlab怎樣把...

matlab中如何將多個矩陣儲存到同矩陣中

將a,b,c合併成d,然後再一次性儲存為txt.d a b c 讀入到txt建議用dlmwrite函式 例如 有100個同維數的矩陣,使其從左到右的順序儲存到同一個txt檔案中。example a,b,c,d是25 3的矩陣 儲存在txt檔案中後的形式是 a b c d 程式設計了25 12的矩陣。...