The problem lies on the arrays due to the Javascript Scope problem. You see, when you change the variable value, it is passing by value, meaning that any changes to the variable is overshadowed (the $scope inside the controller creates a new variables). To overcome this, you will need to use pass by reference so that the updates are reflected in the console.log(), as follow:
HTML
<div ng-controller="Ctrl">
<div ng-repeat="num in myNumbers">
<input type="text" ng-model="num.value" />
<div>current scope: {{num.value}}</div>
</div>
<button ng-click="printNumbers()">print</button>
</div>
Javascript
angular.module('myApp', [])
.controller('Ctrl', function($scope) {
$scope.name = 'Hello';
$scope.myNumbers = [{value: 10},{value: 20},{value: 30}];
$scope.printNumbers = function() {
console.log($scope.myNumbers);
}
});
Result
Try inputting 100 in column 1

this results: (in web inspector)

The array [100, 20, 30] shows as expected.
PLAYGROUND