在Matlab中,我有一个大小为30x1的矢量A
和另一个大小为3x1的矢量B
。循环重新分配向量元素matlab
A = [1.23 2.2 3.3 4.8 5.1 6.7 7.1 8.2 9.9 10.25 11.00 12.1 13.2 14.3 15.4 16.5 17.5 18.1 19.8 20.188 21.2 22.4 23.6 24.1 25.2 26.7 27.8 28.2 29.1 30.3]';
B = [1.23 10.25 20.188];
我想从A
创建相同的尺寸A
的向量C
和B
使得
C = [2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2]';
在B
的数字是倍是完全相同的作为元素在A
,一些元素分开,例如B(2)=A(10)
。
现在我需要为A
写入2
到C编写一个循环,使得每次循环看到了B
相同数量,直到它找到的B
下一个元素是一样的A
它会接着写直到找到下一个相同的元素。
因此对于例如
B(1) = 1.23 and A(1) = 1.23 so C(1:i,1)=2; %where i is the index of the
next similar element.
任何人都可以帮助我如何写这个循环吗?我需要使循环一般,所以不要假定任何关于相同元素的位置在哪里或可能是什么,因为我可以有不同大小的向量(当我需要稍后在脚本中实现时)。
谢谢!
在两个向量的值总是会被上升? – excaza
“A”的第一个值始终是“B”的第一个值吗? – excaza
'B'的值是否总是在'A'中? – excaza