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

2021-05-11 02:22:13 字數 3705 閱讀 4399

1樓:匿名使用者

構造一個sym型變數x:

>> x = sym('10')

x =10

檢視x的型別:

>> class(x)

ans =

sym轉換為double型:

>> y = double(x)

y =10

檢視y的型別:

>> class(y)

ans =

double

2樓:匿名使用者

double(sym型變數)

double(x)

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

3樓:尹南飛雪

第一種:

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

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等解方程時的結果。

覺得有幫助,就採納吧。

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

5樓:楊好巨蟹座

一般來說用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.

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

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

6樓:樊醉柳天致

可以直接使用double函式:

例子如下:

symn

=sym([pi

1/3]);

%生成一個符號矩陣

doublen

=double(symn)

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

7樓:匿名使用者

使用double函式

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

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中怎麼把工作區中1*2sym型,變成1*10型的double型變數 10

10樓:我行我素

要看你的變數是不是數值,如是數值,可從sym變為double型。最好把程式貼出來看下。

matlab sym轉double

11樓:怡麗韙

用double函式將符號型變數變為數值型變數,要求符號變數的值是可以轉換的,而你舉的例子中x並未賦值,怎麼可能轉換?

用vpa函式沒問題,但結果應該仍然是x。

matlab如何將系統變數變成double格式的資料型別?

12樓:宇逸

你把問題寫具體吧,看到程式才能知道**錯了,給個錯誤提示沒法判斷

13樓:小兔崽汁

好像用(double)x可以,試一試吧。

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

用double函式就可以了 double res double sym型變數 matlab中怎樣把sym型變數變為double型變數 構造一個sym型變數x x sym 10 x 10 檢視x的型別 class x ans sym轉換為double型 y double x y 10 檢視y的型別 c...

matlab中怎樣把分塊矩陣的子塊作為整體運算

我覺得您的輸bai入完全du可以使用結構陣列呀zhi。inputstruct struct zikuai1 1 2 zikuai2 3 4 比如這樣 function res example inputstruct 然後在函式體中,dao完全可以inputstruct.zikuai1,inputst...

matlab中怎麼把libsvm資料轉化成matlab格式

label vector,instance matrix libsvmread data.txt 用這個函式 data.txt是你的資料文字,label vector是類別號,instance matrix是屬性矩陣 matlab中怎麼把libsvm資料轉化成matlab格式 matlab中怎麼把l...