Insert new values in specific position after processing
3 ビュー (過去 30 日間)
古いコメントを表示
I have a vector A of logical datatype size 5 x 1
A = [1 0 0 1 1 ];
Then I extracted the features where A = 1
ind1 = A(:,1) == 1;
A1 = Feat(ind1,:);
After processing I obtained a new vector
Anew = [ 1 0 1]
Now I want to insert the Anew back to A in the same position to obtain the result as
[1 0 0 0 1]
When I insert the vector back the values are not coming correctly.
Please can someone help me to insert Anew to A in the same position.
The size of vector A can vary
0 件のコメント
採用された回答
Askic V
2023 年 2 月 12 日
編集済み: Askic V
2023 年 2 月 12 日
In such stuations, I would keep track of indices of elements in the original vector, use find function.
A = logical([1 0 0 1 1]);
ind = find(A == 1)
% processing
Anew = logical([1 0 1]);
A(ind) = Anew
If you really need to change and process the original vector, then instead of removing element in it, place Nan in its position as a placeholder.
3 件のコメント
Askic V
2023 年 2 月 12 日
編集済み: Askic V
2023 年 2 月 12 日
In the following example, the result is expected:
A = [5 5 3 2 1 3 4 5 6 2 1 4 5]
ind = find(A == 5) % keep track of the indices
% processing
%..........
A(ind) = [999.9, 99.9, 9.9, 0.99]
So the logic is good. Please post your code and an example where elements are placed in the wrng positions.
その他の回答 (1 件)
参考
カテゴリ
Help Center および File Exchange で Environment and Settings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!