Managing maximum and minimum values ​​in the elements of an matriz.

2 次查看(过去 30 天)
Hello good afternoon.
I hope you can give me ideas about the solution to this problem that I have.
I have a matrix where the values ​​of the;
first column must be between 2.0 and 2.9
second column must be between 3.0 and 3.9
third column must be between 4.0 and 4.9
fourth column must be between 5.0 and 5.9
fifth column must be between 6.0 and 6.9
A = [2.1 3.0 4.4 5.5 6.1
2.3 3.2 4.2 5.4 6.3
2.1 3.1 4.1 5.2 6.2
2.2 3.1 4.1 5.1 6.6
2.0 3.3 4.3 5.3 6.4];
In case the values ​​are in 0.1 less or more of the limits, that these values ​​are assigned the minimum or maximum values ​​to that element according to the column.
• For example, if I have a value of 1.9 or less in that first column, that value is assigned a value of 2.0 and if it has a value of 3.0 or greater, it will be assigned a value of 2.9
• If in the second column I obtain a value of 2.9 or less, assign it the value of 3.0 and if it has a value of 4.0 or greater, assign it a value of 3.9
and so on to the other columns

采纳的回答

Rik
Rik 2019-11-25
This should work. The idea is to first find out the base number, adjust the offset if needed, and add the base back.
A = [2.1 3.0 4.4 5.5 6.1
2.3 3.2 4.2 5.4 6.3
2.1 3.1 4.1 5.2 6.2
2.2 3.1 4.1 5.1 6.6
2.0 3.3 4.3 5.3 6.4];
lim=0.1;
base=repmat(1+(1:size(A,2)),size(A,1),1);
dist_to_base=A-base;
dist_to_base(dist_to_base<= lim )=lim;
dist_to_base(dist_to_base>= (1-lim) )=1-lim;
B=base+dist_to_base;

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

产品


版本

R2015a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by