看板 MATLAB 關於我們 聯絡資訊
※ 引述《billy00685 (milano)》之銘言: : 小弟剛學不久,自己練習時發生錯誤,麻煩各位幫幫忙... : clear all; : [N]=xlsread('test01.xls','A1:A2'); : s=1; 以上 3 行沒問題,因為你讀入Excel中的 A1 = 1 與 A2 = 2.3 (注意 xlsread 中的參數 'A1:A2') 下行習慣上不會使用分號(;)結尾 : for i=1:5; : a=3; : b(s)=a*i*N; 如果要讓你的程式可以執行,請注意以上這一行。 此時你的 N 為一個 2*1的向量(矩陣),隨便你愛用向量或矩陣稱呼它。 但是你的 s 給與初始值為 1,所以你的 b(s = 1) 只有一格的空間。 可是不管 a 或 i 是什麼數字,與 N 相乘後總是一個 2*1 的向量。 所以以你這個程式這個錯誤訊息是說 "不要以大欺小" 塞不進去的。 : s=s+1; 這一行或許多了,以你的程式而言。因為迴圈的過程中,i 與 s 的值重複了。 : end : b : 執行時發生錯誤: : ??? In an assignment A(I) = B, the number of elements in : B and : I must be the same. : Error in ==> Untitled3 at 6 : b(s)=a*i*N; : 這該如何解決啊? : test01.xls檔案內容: : 1 6.3 2.3 : 2.3 7 C2 : 3 8.3 4.7 : 4.7 9 pi : 5 yes 3.8 讓咱家來修改一下你的程式吧。因為我並不確定你要做的事情是什麼,所以 版本一 clear all N = xlsread('test01.xls','A1:A2'); a = 3; for i = 1:5 b(:,i) = a*i*N; end b 版本二 clear all N = xlsread('test01.xls'); a = 3; for i = 1:5 b(i,:) = a*i*N(i,:); end b 備註1 :xlsread 讀到 unicode 字元會是顯示成 NaN (Not a Number)。 在你的 Excel 中,unicode就是非數字的部分(C2, pi)。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.70.217.78
billy00685:受益匪淺..多謝前輩指教0.0 01/31 23:15
PageRank:不會~我也是過來人。我MATLAB的第一次比你還慘。 02/01 00:15