matlab中的元胞陣列中的數字是字元型儲存存在

2021-03-04 00:47:16 字數 4528 閱讀 2809

1樓:匿名使用者

你應該是讀入資料不對吧? 而不是說考慮把文字轉換成數字。 建議你把原始資料重新整理一下,不存在的值替換為-1之類的特殊標記數字,然後統一讀資料就可以。

如果是xls檔案,可以用[num, txt, raw] = xlsread(xlsfilename, sheetname)來讀取如果是txt檔案,考慮用importdata比較不錯。當然全是純數字的話,load就足夠了

2樓:匿名使用者

先把元胞陣列中所有的'nodata'改為'nan'

用str2num是可以識別』nan『的

假設你的原來的元胞陣列存在變數a中

b=a;%b複製a

b(strcmp(b,'nodata'))=;%b中'nodata'的單元轉化為'nan'

b=cellfun(@str2num,b);%將b轉化為數值nodata的地方會顯示為nan是not a number的意思

matlab中的元胞陣列能轉化為數值陣列嗎?請高手指點!

3樓:匿名使用者

>> cell2mat()==cell2mat()

ans =1

4樓:仉令秋柴會

貌似字元內容的元胞陣列無法直接得出單詞,因為長度不同,只能依次檢索,不知道你怎麼得出的結構這麼複雜的元胞,建議你修改前面的資料結構,可嘗試使用構架

matlab如何將矩陣的數字元素轉換為字元儲存? 15

5樓:波波球

是這樣的,哪不是沒有東西,它是乙個空格字元,如果想表示的更清楚一些,可以這樣實現

a=[0,0,0,0;0,0,1,1;0,1,0,1];

b=num2str(a);

b(:,2:3:end-1)=;

b(:,2:2:end-1)=','

需要注意的是轉換為字元以後空格也會相應的轉換為字元

6樓:靜靜的世界

直接將矩陣由數字型轉換為字元型;

若a=[1 0 1 1];

則b=num2str(a);

b等於字元'1011'

matlab怎麼把元胞陣列轉化成矩陣

7樓:我行我素

由於a,b矩陣維數不同,組成c後,不能轉換為矩陣。

8樓:匿名使用者

a = [1,2,3;4,2,3;5,6,9];

b = [1,2;3,4];

c(1,1) = ;

c(2,2) = ;

% 分解

bai成

duzhi m*n 個變

dao量專屬

[m,n] = size(c);

[r1,r2,r3,r4] = c

r1 =

1     2     3

4     2     3

5     6     9

r2 =

r3 =

r4 =

1     2

3     4

matlab怎麼把元胞陣列轉化成矩陣

9樓:非常可愛

把matlab元胞陣列轉化成矩陣的操作步驟如下:

1、首先開啟matlab,新建乙個指令碼,通過從資料庫獲回取資料,答data資料格式是元胞陣列cell型別。

2、然後使用cell2mat()函式將元胞陣列轉換成矩陣,可以先在命令列視窗help cell2mat檢視函式的使用方法,需要注意的是使用cell2mat函式,cell中的資料型別必須一致。

3、使用a=cell2mat(data);**進行將data元胞陣列轉換成a矩陣型別。

4、最後執行指令碼,可以看到已經將data型別轉換成矩陣,這樣把matlab元胞陣列轉化成矩陣的問題就解決了。

10樓:用著追她

1、開啟來matlab之後,新建乙個指令碼,自這裡是bai

通過從資料庫獲du取資料,data資料格式是zhi元胞陣列cell型別。dao

2、使用cell2mat()函式將元胞陣列轉換成矩陣之前,可以先在命令列視窗help cell2mat,檢視函式的用法,這裡需要注意的是使用cell2mat函式,cell中的資料型別必須一致,生成的新矩陣也會是cell型別中資料的型別。

3、我們使用a=cell2mat(data);**進行將data元胞陣列轉換成a矩陣。

4、執行指令碼之後,可以看到已經將data型別轉換成矩陣了,因為cell型別中的資料是數值型別,轉換成的矩陣也是數值型別。

5、在指令碼中輸入b=str2num(char(data));**,需要注意的是這裡的元胞陣列中的資料型別必須為char型別,不然轉換報錯。

6、執行指令碼,可以看到成功將元胞陣列轉換成矩陣。

11樓:楊好巨蟹座

一:cell2mat(cell);

cell2mat是預設要求你的矩陣的大小是統一的。

二:str2num(char(cell));

三:cellfun(@str2num, cell)

12樓:匿名使用者

clear all;clc; a=cell(2,10); for ii=1:10 a=zeros(2,2); a=ones(2,2); end b=cell2mat(a(2,:));

matlab 元包陣列中元素的數字型別轉換?

13樓:匿名使用者

把型別高一樣就可以抄了

你的baia是讀進來的影象,型別du可能是uint8分為10x10子塊的時zhi候,都還是daouint8的型別也就是b中cell單元中,每個單元是uint8的矩陣最後在判斷

條件成時,改矩陣值的時候,zeros是可以指定資料型別的b=zeros(44,40,'uint8')這樣應該就沒有問題了

還有就是,其實可以不用那兩個二重迴圈的,用cellfun效率更高

matlab 將元胞陣列轉換成字串陣列

14樓:匿名使用者

如果你的cell裡面的資料是字串的話就沒必要轉化成矩陣了

15樓:匿名使用者

clearall;clc;a=cell(2,10);forii=1:10a=zeros(2,2);a=ones(2,2);endb=cell2mat(a(2,:));

怎樣將符號型矩陣轉換成數值型 matlab

16樓:day忘不掉的痛

符號常量矩陣a,可以使用double來轉換為數值矩陣。

>> a = sym([1/2 1/3;1/4 1/5])a =

[ 1/2, 1/3]

[ 1/4, 1/5]

>> a1=double(a)

a1 =

0.5000 0.3333

0.2500 0.2000

若是符號變數矩陣,比如含有變版量x,需要使用變數替權換subs,才能得到數值矩陣

>> syms x

>> a = [2*x 1/3; x^2 3+x]a =[ 2*x, 1/3]

[ x^2, 3+x]

>> a1 = subs(a,'x',1/4)a1 =

0.5000 0.3333

0.0625 3.2500

17樓:匿名使用者

符號型矩陣轉數值型矩陣可以使用double命令如:>> a=[1/3 sqrt(2); 2/3 sqrt(5)]a =0.3333 1.4142

0.6667 2.2361

>> b=sym(a) % a是數值型矩陣,內先將其轉化成符容號型矩陣

b =[ 1/3, sqrt(2)][ 2/3, sqrt(5)]

>> c=double(b)

c =0.3333 1.4142

0.6667 2.2361

matlab字串矩陣轉化為數字矩陣

18樓:匿名使用者

舉例說明

a=『2 3 4 5』;

b=str2num(a);

結果:b= 2 3 4 5

把uitable變成n行一列,用reshape(uitable,n,1); 不過這時n等於uitalbe的陣列元素個數

19樓:匿名使用者

程式設計,好像要用到num2char,和strcat函式。

s='';

for i=1:4

s=strcat(s,num2char(a(i)),);end

20樓:不好好改就革

很簡單clc;clear

a = ['1001';

'0110';

'0001';

'0101'];

double(a)-double('0')

Matlab怎樣從陣列矩陣中隨機取數

try function randperm for example a 1 2 3 4 5 6 7 8 9 10 b a randperm length a x b 1 5 matlab中從已知矩陣中隨機抽取5個元素如何實現.1.撰寫評論內容。如何從陣列中隨機提取元素。2.建立乙個新函式chouqu...

怎麼在matlab中對排列組合中的某個元素進行賦值

只要在對應的位置直接賦值便可!比如a 3,4 5,表示對a矩陣中第三行,第四列的元素賦值為5!在matlab裡面什麼叫全元素賦值法 b 1 2 3 4 5 a k 1 b k 從上面的抄例子知道,襲b有5個元素,a有6個元素,首bai先可以對a進行初du始化,然後按照你給zhi出的規則,為daoa中...

java中怎樣把數賦值到陣列,java中怎樣把乙個數賦值到乙個陣列

把你的問題描述清楚一點 你想陣列的值都一樣嗎?還是賦值到其中的1個位置就行?string arra string arrb new string 10 if arra.length 0 arrb.length 0 for string str arrb java中怎樣把乙個數賦值到乙個陣列 關於把乙...