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樓:匿名使用者
勞你發兩三個檔案到我的郵箱
當然,檔案的行數可以不用那麼多。
這些檔案都是在同一個資料夾下面嗎?
請問用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...