為什麼這篇matlab fwrite用法鄉民發文收入到精華區:因為在matlab fwrite用法這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者totemist (totem)看板C_and_CPP標題[問題] fopen讀相同檔名時間Su...
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
code::block
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
matlab
問題(Question):
fopen對於同樣的檔名不會自動讀最新的
餵入的資料(Input):
matlab生成一筆data 名稱叫point.txt
預期的正確結果(Expected Output):
fopen讀最新的一筆data
錯誤結果(Wrong Output):
還是停留在上一筆data
程式碼(Code):(請善用置底文網頁, 記得排版)
float z;
int k;
FILE *fptr;
if((fptr=fopen("point.txt","r"))!=NULL)
{
for (k=0;k<3200;k++){
fscanf(fptr,"%f",&z);
input[k] = z;
printf("%f\n",input[k]);
}
}
fclose(fptr);
補充說明(Supplement):
就是我因為方便,所以每次在matlab調變參數後的結果,都存在point.txt這個檔案
反正相同檔名就意同直接把舊的覆蓋
所以我以為C的fopen也是會直接讀最新的point.txt
結果後來檢驗過程中還是只讀到上一筆已經被覆蓋掉的point.txt
自行解決的方法就是在matlab存成檔案的時候就存成不同名字,這樣C就可以讀到
但是麻煩點就在這樣每次存檔案,讀取檔案都要手動改檔案名稱
謝謝大大
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.236.142
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1433066088.A.729.html
道有變化啦~~
我的matlab部分code :
save('point.mat','point');
fid = fopen('C:\Users\totem\Desktop\filter_project\point.txt', 'a');
fprintf(fid, '%f \n', point );
fclose(fid);
※ 編輯: totemist (36.228.236.142), 05/31/2015 21:52:58
步驟如下
1. matlab生成一個名為point.txt的檔案
2. 手動切換到C去讀取這個point.txt
※ 編輯: totemist (36.228.236.142), 05/31/2015 22:17:58
※ 編輯: totemist (36.228.236.142), 06/01/2015 04:25:46
他並沒有覆蓋前3600筆資料,而是加在3600筆資料後,我這才發現昨天測試的txt檔裡有破
萬筆data!!!
謝謝 兩位 我大該知道該怎麼處理了!!
※ 編輯: totemist (36.228.236.142), 06/01/2015 16:48:46
修正成功!!!
只要把'a'改成'w+t'就可以了!!!
昨天既然被困惑了!!!
謝謝大大們的提點~
※ 編輯: totemist (36.228.236.142), 06/01/2015 16:53:55