作者leo750812 (leo)
看板MATLAB
標題[問題] 從矩陣取值出現錯誤訊息
時間Wed Apr 25 20:36:46 2012
A = [20.38, 30, 7]
假如直接打
>> A
ans = 20.38 30 7
但是假如打A(1)
會出現下列訊息
??? Index exceeds matrix dimensions.
請問我要怎麼修改
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.120.15.168
1F:→ vincent59:應該沒問題吧 04/25 20:41
忘記提到一件事
A 出現在while loop裡面
第一次出現的值是空值([])
接下來出現的ans都是正常的
我本來猜測會不會因為遇到空值,所以出現錯誤
但是從第二次進入迴圈取值,還是會出現錯誤
※ 編輯: leo750812 來自: 140.120.15.168 (04/25 21:04)
2F:推 vincent59:空值([])?? 同學你寫了什麼呢? 04/25 21:06
有個21*3的矩陣B
A(1)是B矩陣中第一列的最大值
假設最大值是B(10,1),我希望A的內容是(B(10,1),B(10,2),B(10,3))
但是因為不知道要怎麼取A(2), A(3)
所以是用最大值的index指向B的值,再存回A
※ 編輯: leo750812 來自: 140.120.15.168 (04/25 21:16)
3F:→ leo750812:不知道大大能不能看懂這樣的敘述方式 04/25 21:17
剛剛條件設定錯了,現在直接從第二次進入迴圈取值,可以順利的抓到
但是對於最大值部分,各位有什麼建議嗎
※ 編輯: leo750812 來自: 140.120.15.168 (04/25 21:34)
4F:推 vincent59:最大值部分 ??取最大值嗎 04/25 21:48
是除了取最大值以外,還要一起取跟最大值同列的資料
我現在的做法是用Index指向,但是覺得可能有其他的處理方式
※ 編輯: leo750812 來自: 140.120.15.168 (04/25 22:05)
5F:推 vincent59:你要取的是B矩陣的每一行的最大值還是每一列的??? 04/25 22:57
6F:推 vincent59:或者你告訴我們 你怎麼作的??? 因為我不太懂 04/25 23:20
7F:→ vincent59:不好意思 04/25 23:20
不好意思,我的敘述能力太弱了,我直接用例子來說明問題好了
B = 10 6 3
50 4 1
23 1 7
17 9 2
我希望得到的結果是:50 4 1 (也就是第一行的最大值,以及同一列的資料)
目前的做法是
[OUT INDEX] = MAX(B(:,1));
A(2) = B(INDEX,2);
A(3) = B(INDEX,3);
雖然可以得到我要的結果,但是想知道各位先進有沒有別的做法
※ 編輯: leo750812 來自: 140.120.15.168 (04/26 00:27)
8F:推 vincent59:A= B(INDEX,:); 這樣可以 04/26 00:35
9F:推 vincent59: A(1) = B(INDEX,1) 這行也可以ㄟ??? 04/26 00:44
10F:→ leo750812:感謝vincent59,你給了我很大的幫助 04/26 01:10
11F:推 vincent59:不客氣 教學相長嘛 04/26 01:17