相同值下标索引问题
紧急求助:现在论文部分需要一小程序计算,但是弄了一个晚上没有搞定,请高手帮忙。
如有两列值a,b,每一个a值对应一个b中的值。
现在想找出a中相同的值所对应的b的值,在编程中遇到了问题,如何把a中相同的值的位置记录输出呢?或者如何实现这个过程?我编程时每次得到的记录a中相同值的位置时就会冲掉前面已经求出的结果,如何把所有满足条件的都保存下来呢?
请高手帮忙解决下,谢谢先
[ 本帖最后由 eight 于 2007-3-15 10:42 编辑 ] 如何把所有满足条件的都保存下来呢
用数组而非单变量存储
ps:你的问题最好用一个简单例子来说明 如下面所示的例子,我写的前一部分程序如下:
function p=fuping
a=; f=; n=length(a);
for i=1:n
p=find(a==a(i));
end
该程序只能得到一个相同值的结果,而其他的相同值的结果该如何获得呢?谢谢!我也试着改存贮的为数组,但是由于相同值的个数不同,总提示出错,不知该如何处理。请指教!谢谢
[ 本帖最后由 ChaChing 于 2009-7-12 12:22 编辑 ] 为何循环中不含有 f ?请先保证所帖程序没有错误
[ 本帖最后由 ChaChing 于 2009-7-12 12:23 编辑 ] 我只是先找出a中的相同值所在的位置,然后再找对应的f值,所以还没f,在这一步就已经遇到问题,所以就被迫停了下来。请谅解。 原帖由 xinquan 于 2007-3-15 10:03 发表
我只是先找出a中的相同值所在的位置,然后再找对应的f值,所以还没f,在这一步就已经遇到问题,所以就被迫停了下来。请谅解。
哦,明白,以为你程序中写错了,呵呵。看看先
你的意思是最终找到 和 ?
[ 本帖最后由 eight 于 2007-3-15 10:08 编辑 ] 对,就是这个意思,但是我现在只能找出【5,7】,找不出全部来,请帮忙,谢谢! 写了一个简单的:
a = ;
b = unique(a);
ind = false(length(b),length(a));
for i = 1:length(b)
c = find(b(i) == a);
if length(c) > 1
ind(i,c) = true;
end
end
ind
[ 本帖最后由 ChaChing 于 2009-7-12 12:24 编辑 ] 谢谢楼上的,不过我觉得还有一个问题就是,如果a序列值比较长, 那么ind矩阵会超出MATLAB存储范围吧?另外按照您这个思路对应的f的值如何找出呢? 原帖由 xinquan 于 2007-3-15 13:03 发表
谢谢楼上的,不过我觉得还有一个问题就是,如果a序列值比较长, 那么ind矩阵会超出MATLAB存储范围吧?
这的确是个值得探讨的问题,所以我才说“写了一个简单的”
另外按照您这个思路对应的f的值如何找出呢?
自己查查逻辑变量的用法吧
页:
[1]