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

2021-04-30 21:22:35 字數 4542 閱讀 8032

1樓:尹南飛雪

第一種:

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

2樓:

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

第一種:

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型?

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) 這...

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

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樓:匿名使用者

可以直接使用double函式:

例子如下:

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

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

9樓:匿名使用者

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

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

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

10樓:匿名使用者

構造一個sym型變數x:

>> x = sym('10')

x =10

檢視x的型別:

>> class(x)

ans =sym

轉換為double型:

>> y = double(x)

y =10

檢視y的型別:

>> class(y)

ans =double

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

11樓:匿名使用者

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

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

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

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中怎樣將1 10304的矩陣進行降維,也就是將10304變小

用squeeze命令即可 設a為待降維矩陣,b為降維輸出矩陣 b squeeze a 現有矩陣降維常用方法 來降維方法分為線性核非線 源性降維,非線性降維又分為基於核函式和基於特徵值的方法。線性降維方法 pca ica lda lfa lpp le的線性表示 於核函式的非線性降維方法 kpca ki...

怎樣用matlab將影象轉化為矩陣

2 影象imread後,a已經是矩陣了 彩色的3維,灰度2維 3 matlab運算元據以矩陣為基礎,也就是計算都是矩陣啦。matlab的作用 讀入彩色圖的時候,是一個二維矩陣,矩陣中每個元素有rgb三個值 讀灰度圖時,讀入的就是一個二維矩陣,元素值是灰度值i imread a.jpg 讀入 i2 r...

matlab中怎樣將三維陣列的維賦給二維如A1)賦給二維的B

1,直接賦值 b a 1 試了一下可以。2.先用次sum求每行元素和,因為要求 每個元素都除以每列之和 所以得用1次for迴圈 1 三維陣列中的各個為也是二維陣列,所以賦值可以直接賦即可!假設a是三維陣列,b是二維陣列 b a 1 b a 2 b a 3 分別把a的三維中的 一 二 三維賦給b。2 ...