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已經不是變數了,所以就會出現錯誤。

c中無法將 int 型別隱式轉換為 string

完整 如下 using system using system.collections.generic using system.linq using system.text namespace sd a tostring c 無法將型別int隱式轉換為string怎麼解決?直接強制轉換就行了,把s...

錯誤1無法將型別「int 」隱式轉換為「int」。存在顯式轉換 是否缺少強制轉換

var votes from v in db.voteitem where v.titleid int32 parse request.querystring titleid tostring select v.itemcount sum var 是.net framework 3.5新出的一個定義...

vb如何將string型別強制轉換成int型別

val string 就行了例子private sub command1 click dim str as string str 123 dim i as integer i val str print i end sub 千鋒教育 vb將 string型別強制轉換成int型別方法一 int i s...