作者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