Tôi có một ma trận A
màLàm cách nào để thay thế một số giá trị cột tùy thuộc vào điều kiện?
A=
4.0000 120.0000 92.0000 0 0 37.6000 0.1910 30.0000
10.0000 168.0000 74.0000 0 0 38.0000 0.5370 34.0000
10.0000 139.0000 80.0000 0 0 27.1000 1.4410 57.0000
1.0000 139.0000 60.0000 23.0000 846.0000 30.1000 0.3980 59.0000
5.0000 136.0000 72.0000 19.0000 175.0000 25.8000 0.5870 51.0000
7.0000 121.0000 0 0 0 30.0000 0.4840 32.0000
Tôi muốn làm hai việc:
- Thay thế các giá trị của cột đầu tiên mà là lớn hơn 5 bằng 0.
- Trong giây cột, nếu các giá trị nằm trong khoảng 121-130, thay thế chúng bằng 0. Nếu chúng nằm trong khoảng 131-140, thay thế bằng 1, 141-150 x 2, 151-160 x 3, v.v.
Vì vậy, ma trận kết quả mong muốn sẽ là:
A=
4.0000 0.0000 92.0000 0 0 37.6000 0.1910 30.0000
0.0000 4.0000 74.0000 0 0 38.0000 0.5370 34.0000
0.0000 1.0000 80.0000 0 0 27.1000 1.4410 57.0000
1.0000 1.0000 60.0000 23.0000 846.0000 30.1000 0.3980 59.0000
5.0000 1.0000 72.0000 19.0000 175.0000 25.8000 0.5870 51.0000
0.0000 0.0000 0 0 0 30.0000 0.4840 32.0000
Làm cách nào để thực hiện điều này?
Tôi đã cố gắng một cái gì đó như thế này:
counter=1;
for i = 1: rows
if A(i,1) > 5
A(i ,1) = 0;
end
if A(i,2) > 120 && A(i,2) < 130
A(i ,2) = 0;
end
counter = counter+1;
end
Sẽ sử dụng một trường hợp làm các việc lừa?
Còn giá trị cạnh như 130 thì sao? Đó có phải là 0 hoặc 1 không? – gnovice
cũng quên nói, một cạnh sẽ là 0, 131-140 sẽ là 1, 141-150 2 – cMinor