1樓:匿名使用者
按照我的理解,你是想把檔案中的資料全部讀進去,進行一些操作。因此,下面的說法都是依據我的理解來的。建議以後寫問題的時候,可以寫的更具體一點。
你的問題,我覺得主要是第五行:
[array,count]=fscanf(fid,'%d',inf);
使用fscanf的時候出了錯。導致你的array以及count出錯。
關於fscanf的使用,可以參考:
因為你的檔案列數500多行不確定,所以我覺得使用fscanf不太方便。
因此,把這一行改成下面的三行:
array=textscan(fid,'%f %f'); %我讀取的是浮點數。如果你確實是用整數,把f改成d。
array=cell2mat(array);
count=size(array,1); %我猜你的count是列數,所以用了列數。如果不是自己修改一下。
這樣就沒有問題了。
我懷疑的是你出現兩次的這句:
elseif(i>1&i<(count-1))
你確定應該是《而不是<=嗎?這只是按照我的理解說的。
上面有很多我猜測的成分,不一定完全符合你的心思,你要進一步根據你的需求做一些修改。不過對於你出錯的原因,我想我應該說明白了。
若有不解,歡迎追問。
2樓:匿名使用者
你的錯誤表明array這個矩陣其實這有一個元素,也就是說,你讀取檔案時可能只是讀取了一行,或者是你檔案中的那個第一個標號1。你查一下workspace裡的array矩陣是否只是一個數。你要讀取檔案的話,必須要清楚檔案的格式,你最好把檔案的內容說的詳細一點,例如,檔案中是否就是一個標號對應一個資料?
標號和資料之間是空格隔開的?空格的數量是否確定?
3樓:匿名使用者
你只需要檢查這一句[array,count]=fscanf(fid,'%d',inf);
讀出來的資料室咋樣的,問題就出在這裡。
急!!matlab裡for迴圈裡進行if判斷
你最好描述下你要的程式要實現什麼 現在看來,應該是你迴圈切換,但沒走出之前的迴圈我根據我對你的目的的揣測,修改如下,你看下 shi 1 23 mode1 0 mode2 0 ju 0,1,1,12,4,3,9,19,8,8,0,0,0,4,5,40,9,6,40,8,8,0,0 for i 2 le...
MATLAB求如何實現陣列輸入,裡面的元素,變成字串標量輸出
s c i max size s for i 1 i c c,s endc matlab裡怎麼讓字串陣列的元素變成變數名 matlab建立字bai符串陣列可以du採取你所說的方式,但必須保zhi證每行的長度dao必須相等專,為此必須給某些屬 行補充空格符來實現長度一致。函式str2mat能夠自動把字...
求VB陣列問題
在general中定義 dim a 10,10 as integer,b 10,10 as integer 設定 框picture1的autoredraw屬性為true,text1的mutiline屬性為true.private sub form activate 如果a已有值,則省略以下5行 fo...