Вот простой способ сделать это:
<form onsubmit="return checkBeforeSubmit()">
some input:<input type="text">
<input type="submit" value="submit" />
</form>
<script type="text/javascript">
var wasSubmitted = false;
function checkBeforeSubmit(){
if(!wasSubmitted) {
wasSubmitted = true;
return wasSubmitted;
}
return false;
}
</script>
Многие встроенные операции, такие как sum
и prod
, уже могут работать со строками или столбцами, поэтому вы можете провести рефакторинг применяемой функции, чтобы воспользоваться ее преимуществами. это.
Если это не жизнеспособный вариант, один из способов сделать это - собрать строки или столбцы в ячейки с помощью mat2cell
или num2cell
, а затем использовать cellfun
для работы с результирующим массивом ячеек.
В качестве примера предположим, что вы хотите просуммировать столбцы матрицы M
. Вы можете сделать это, просто используя sum
:
M = magic(10); %# A 10-by-10 matrix
columnSums = sum(M, 1); %# A 1-by-10 vector of sums for each column
А вот как это сделать, используя более сложную опцию num2cell
/ cellfun
:
M = magic(10); %# A 10-by-10 matrix
C = num2cell(M, 1); %# Collect the columns into cells
columnSums = cellfun(@sum, C); %# A 1-by-10 vector of sums for each cell