matlab求救!無法將sym型別轉換為double型別

時間 2021-10-30 05:53:29

1樓:匿名使用者

你仔細觀察一下,你積分以後的常數沒有賦值,所以總是有 syms 格式的 c1 c2

現在前面 給他們賦值 在 subs()

2樓:齋帥府雨梅

使用double函式

比如>>

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樓:尹南飛雪

第一種:

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

9樓:百小度

這眼根據你的實際情況,給你幾種解決建議。第一種: 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 轉換為 double

10樓:天雲一號

你的r中含有w引數,plot(x, y)畫圖時,x和y都要是確定的值

11樓:理想軍團

看不清圖. 請貼文字**

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

12樓:匿名使用者

構造一個sym型變數x:

>> x = sym('10')

x =10

檢視x的型別:

>> class(x)

ans =

sym轉換為double型:

>> y = double(x)

y =10

檢視y的型別:

>> class(y)

ans =

double

13樓:匿名使用者

double(sym型變數)

double(x)

matlab無法從 sym 轉換為 double 30

14樓:匿名使用者

syms x y

t=x^2+y^2;

r=int(t,x,0,2);

r=char(r);

f1=find(r=='^');

r=[r(1:f1-1) '.' r(f1:end)];

y=linspace(0,2,100);

r=eval(r);

plot(r,y)

有償求助 。matlab 從 sym 轉換為 double 時出現以下錯誤 5

15樓:

樓上在誤人子弟,你的錯誤在於將變數表示式代入數值矩陣中,你可以在for迴圈前定義y ddd和p為變數矩陣,格式是sym y ddd p;

syms定義變數值如你寫的x

sym定義變數矩陣如y ddd p

16樓:匿名使用者

你的問題可以這樣解決。必須將syms x這個命令放在for 迴圈語句中。如 syms x 在for 迴圈語句外面,**只執行第一個迴圈,執行第二個迴圈,此時x已經不是變數了,所以就會出現錯誤。

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

可以直接使用double函式 例子如下 symn sym pi 1 3 生成乙個符號矩陣doublen double symn 將符號矩陣轉換為double陣列 matlab怎樣將sym型別的資料轉換成double型 尹南飛雪 第一種 r double s converts the symbolic...

matlab資料型別強制轉換,matlab怎麼把邏輯資料型別轉化為數值

一般來說用dec2hex及hex2dec就可以。ss 010600001388849c ssdec hex2dec ss sshex dec2hex ssdec format hex disp sshex 不過前提是你的機器能處理這麼大的數。我用小一點的數比如說ss 01600001388849c ...

C中如何將double型別轉換成string型別

隱式轉換 當對簡單的值型別進行轉換時,如果是按照 byte,short,int,long,float,double從左到右 從短到長 進行轉換的時候,可以直接進行轉換 隱式轉換 不用做任何說明。簡單的 示例 static void main string args 顯示轉換 依然是對值型別進行轉換時...