MATLAB中關於m檔案的資料輸入格式問題,x後面括號中上個

2022-01-19 16:28:31 字數 5287 閱讀 2158

1樓:

冒號在matlab裡面是用來生成等間距數列的,沒見過x = [1:2:3:

4];這種用法。可能原文是想用分號吧。你在matlab裡面輸出這兩個表示式比較一下就知道了,一個是行向量,一個是列向量:

x=[1,2,3,4]

x=[1;2;3;4]

請問如何把matlab資料集裡面不同單元格的資料提取出來放到一個單元格里,並用逗號隔開?

2樓:

用find()函式可以提取。逗號隔開應該就是用reshape()函式把結果變形成1 x n或 n x 1 的向量。

matlab 讀取資料 資料中有 逗號

3樓:姜哥還是老的辣

一、純資料檔案(沒有字母和中文,純數字)

對於這種txt文件,從matalb中讀取就簡單多了

例如test.txt檔案,內容為「17.901 -1.1111 33.045

17.891 -1.1286 33.045

17.884 -1.1345 33.045」

可以在command window中輸入load test.txt ,然後就會產生一個test的資料檔案,內容跟test.txt中的資料一樣;另一種方法是在file/import data......

/next/finish 也可產生一個叫test的資料檔案。

二、中英文和資料如test1.txt

「你好歡迎來到

振動論壇

vib.hit.edu.cn

1 11 111 1111

2 22 222 2222

3 33 333 3333

4 44 444 4444

5 55 555 5555」

這樣的檔案怎麼讀入資料呢?

方法有多種,現舉兩個比較簡單實用的。

方法一:

file/import data....../next/finish

>> whos

name size bytes class

data 5x4 160 double array

textdata 4x1 300 cell array

grand total is 54 elements using 460 bytes

>> data

data =

1 11 111 1111

2 22 222 2222

3 33 333 3333

4 44 444 4444

5 55 555 5555

>> textdata

textdata =

'你好'

'歡迎來到'

'振動論壇'

'vib.hit.edu.cn'

方法二:

[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)

說明:%s可以是其他形式,跟讀入的資料型別有關,比如這裡也可以用%n,%f等。

這裡%s的個數和[a1,a2,a3,a4]對應。

>> [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)

a1 =

'1''2'

'3''4'

'5'a2 =

'11'

'22'

'33'

'44'

'55'

a3 =

'111'

'222'

'333'

'444'

'555'

a4 =

'1111'

'2222'

'3333'

'4444'

'5555'

因以字串的形式讀入,所以有''。

————————————————————————————————

三、中文 資料 英文 混亂如test.txt

你好1 11 111 1111

歡迎來到

2 22 222 2222

振動論壇

3 33 333 3333

vib.hit.edu.cn

4 44 444 4444

5 55 555 5555

說明:這種內容格式的檔案用上面的方法是不行的。

以下是由chinamaker編寫的一種方法:

fidin=fopen('test.txt'); % 開啟test2.txt檔案

fidout=fopen('mkmatlab.txt','w'); % 建立mkmatlab.txt檔案

while ~feof(fidin) % 判斷是否為檔案末尾

tline=fgetl(fidin); % 從檔案讀行

if double(tline(1))>=48&&double(tline(1))<=57 % 判斷首字元是否是數值

fprintf(fidout,'%s\n\n',tline); % 如果是數字行,把此行資料寫入檔案mkmatlab.txt

continue % 如果是非數字繼續下一次迴圈

endend

fclose(fidout);

mk=importdata('mkmatlab.txt'); % 將生成的mkmatlab.txt檔案匯入工作空間,變數名為mk,實際上它不顯示出來

>> mk

mk =

1 11 111 1111

2 22 222 2222

3 33 333 3333

4 44 444 4444

5 55 555 5555

4樓:匿名使用者

可以使用matlab提供的dlmread函式m = dlmread(filename, delimiter) reads data from the file, using the specified delimiter. use '\t' to specify a tab delimiter.

解釋:m = dlmread(filename, delimiter) 可以從檔案中讀取含分隔符的檔案,並返回儲存到m中。filename為字串,代表檔名。

delimiter為ascii碼分隔符。

這裡,分隔符為逗號,所以delimiter為 ',' 。

5樓:匿名使用者

你可以先匯入到excel裡面,利用excel分列的功能把逗號去掉,然後直接可以匯入到matlab當中

6樓:

高版本的matlab可以直接把資料檔案拖動到workspace視窗,可以自動識別非資料字元

7樓:匿名使用者

具體點, 要去掉嗎?

matlab中,將矩陣儲存到txt文件中,如何在矩陣的每個元素後面加個逗號?用vc++的也可以

8樓:匿名使用者

x = 0:.1:1;

y = [x; exp(x)];

fid = fopen('exp.txt','wt');

fprintf(fid,'%6.2f,%12.8f\n',y);

fclose(fid);

看看這個例子吧

祝你學習愉快!

9樓:匿名使用者

採用fprintf按c語言格式輸出即可,是輸出設定中加上逗號

求用matlab批量處理csv(逗號分隔符)形式的txt檔案的方法。

10樓:匿名使用者

要是每行字元長度和格式都一樣的話就是下面這個樣子。不過第一個資料,我猜是採集時間,輸出的是字元,你要畫圖啥的自己再稍微轉換一下格式。

fid=fopen('data1.txt','r');

text=textscan(fid,'%8s%11s%5f%5s');

time=char(text);

data=text;

fclose(fid);

這個時間字串裡有個冒號,不能直接用str2num,第二種方法我沒看明白你要做啥。你要是想把冒號前後的資料讀出來的話:

[m n]=size(time);

for i=1:m

time1(i,1)=str2double(time(i,1:2));

time2(i,1)=str2double(time(i,4:8));end

11樓:匿名使用者

勞你發兩三個檔案到我的郵箱

[email protected]

當然,檔案的行數可以不用那麼多。

這些檔案都是在同一個資料夾下面嗎?

請問用matlab在txt檔案中讀入一個很大的矩陣(480*80)怎麼讀入?矩陣資料之間沒有逗號或者空格,謝謝!

matlab中是不是單引號後面不能用空格而是用逗號?求教大神!我在輸入書中的**時legend('y=sin(x)' 'y=s

12樓:匿名使用者

是的要用逗號, 作為引數分隔

單純的空格會報錯

matlab讀入10萬行資料,每行格式是id@後面跟用逗號隔開的資料

13樓:匿名使用者

用 notepad 開啟資料文字,用「替換」功能將 @ 全部換成 ,

dt = load('d:\data.txt');    直接調入資料

第一列為 id,如果不要可:dt(1,:) = ;

matlab中m檔案怎麼呼叫另m檔案的函式

按程式,後面的資料將覆蓋前面的資料,可按下面 function xunhuan k input 迴圈次數 for i 1 k myfunc success xlswrite e testdata.xls w,i endend 這樣會在一個檔案中生成多個工作表 將兩個m檔案放在同一目錄,在第一個m檔案...

如何在matlab中建立m檔案,matlab中如何建立一個m檔案?

matlab的m檔案分為兩種,1 指令碼檔案,就是由一堆命令構成的,裡面第一行不是 function 開頭,這種檔案比如是name.m 就在命令視窗裡輸入name回車就行 2 函式檔案,第一行為function 比如說是function y name x 這種檔案,函式名與檔名是一致的,在命令視窗裡...

在MATLAB的GUI中,得到M檔案中的某個引數值

你的意思是按button3執行step3.m檔案,然後按button4再輸出變數precision嗎?如果變數precision的值是執行step3.m檔案之後得到的則可以採用全域性變數的方法寫 這個button是執行step3.m檔案的,想得到其中的變數precision。function but...