some basics on MATLAB
3 次查看(过去 30 天)
显示 更早的评论
Q)In a row there are digits like this. how to find the positions greater than zero values in a row is there any instruction please suggest
10 0 25 22 45 0 0 0 0 0 0 1 3 21 after finding i want particular positions to be replace with new integer values only under any
predicted positions(greater than zero values) and remaning all i need to keep 0 value for example
0 0 0 60 0 0 0 0 0 0 0 20 0 0.
0 个评论
采纳的回答
Sivsankar
2023-6-27
编辑:Torsten
2023-6-28
From what I understood from your question I think the following code solves your question
% Define the row of digits
row = [10, 0, 25, 22, 45, 0, 0, 0, 0, 0, 0, 1, 3, 21];
% Find the positions greater than zero values
positions = find(row > 0);
% Create an array of new integer values
new_values = [60, 20]; % Example new integer values
% Replace the values at the identified positions with new integer values
row(positions) = new_values(1:length(positions));
% Keep the remaining positions as zero
row(row == 0) = 0;
% Display the updated row
disp(row)
Note:This code assumes that the number of positions greater than zero values is the same as the number of new integer values provided. If the number of positions is greater, the extra positions will remain as zero. If the number of positions is fewer, the remaining new values will not be used.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!