Could anyone help me to solve the issue.
1 次查看(过去 30 天)
显示 更早的评论
I am having two matrices
A=[1.6512 1.6149 1.5829 1.5546 1.5298 1.1498 1.1334 1.1191 1.1066 1.0957 1.0862 1.0779 1.0707 1.0644 1.0589 1.0541 1.0499 1.0462 1.0430 1.0402 1.0377 1.0356 1.0337 1.0320 1.0305 1.0292 1.0198 1.0198 1.0198 1.0198 1.0198 1.0198 1.0198 1.0198 1.0198 1.0198 1.0198]
B=[ 2.7076 2.7629 2.7701 2.7939 2.7964 2.8101 2.8152 2.8153 2.8182 2.8183 2.8351 2.8389 2.8401 2.8483 2.8562 2.8581 2.8599 2.8638 2.8664 2.8691 2.8796 2.8817 2.8818 2.8841 2.8849 2.8849 5.2814 5.2834 5.2836 5.2875 5.2897 5.2946 5.3016 5.3102 5.3211 5.3254 5.3417 5.3484 5.3522]
Matrix A contains same value by reaching convergence after certain values.
I want to make matrix B to have the same value at the place where matrix A begins to have similar values .
Could anyone please help me on this
0 个评论
回答(3 个)
Raj
2019-9-13
A=[1.6512 1.6149 1.5829 1.5546 1.5298 1.1498 1.1334 1.1191 1.1066 1.0957 1.0862 1.0779 1.0707 1.0644 1.0589 1.0541 1.0499 1.0462 1.0430 1.0402 1.0377 1.0356 1.0337 1.0320 1.0305 1.0292 1.0198 1.0198 1.0198 1.0198 1.0198 1.0198 1.0198 1.0198 1.0198 1.0198 1.0198];
B=[ 2.7076 2.7629 2.7701 2.7939 2.7964 2.8101 2.8152 2.8153 2.8182 2.8183 2.8351 2.8389 2.8401 2.8483 2.8562 2.8581 2.8599 2.8638 2.8664 2.8691 2.8796 2.8817 2.8818 2.8841 2.8849 2.8849 5.2814 5.2834 5.2836 5.2875 5.2897 5.2946 5.3016 5.3102 5.3211 5.3254 5.3417 5.3484 5.3522];
temp = findgroups(A);
B(temp(1))= A(temp(1));
3 个评论
Jos (10584)
2019-9-13
ix = find(abs(diff(A)) < YourThreshold, 1, 'first') % maybe you want to add + 1
B(ix:end) = B(ix)
2 个评论
Jos (10584)
2019-9-13
You should set/replace YourThreshold to/by some value ... I also suggest you read the getting started section of Matlab first :-)
madhan ravi
2019-9-13
Looks like it's the same as your previous question , why not use it then??
[~,~,c]=unique(A,'stable');
B = B(c)
4 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!