# 一个矩阵数学函数库。
# 所有这些都假定一个由二维数组定义的矩阵,其中第一个索引(数组[x])是行,第二个索引(数组[x][y])是列。
# 也就是说,它是完美的矩形,没有丢失的值:
#也就是说这个函数是判断这个数组是不是一个矩阵
function _matrix_well_formed($matrix)
{
// 如果不是数组,则表示格式错误,返回false。
if (!(is_array($matrix))) {
return false;
} else {
// 计算行数
$rows = count($matrix);
// 现在遍历每一行:
for ($r = 0; $r
#确保设置了这一行和一个数组。
#检查它是否被设置,以确保这是一个基于0的数字索引数组。
if (!(isset($matrix[$r]) && is_array($matrix[$r]))) {
return false;
} else {
// 如果这是第0行,计算其中的列:
if ($r == 0) {
// $cols = count($matrix[$r]);
// // 确保列数相同,否则退出
// } elseif (count($matrix[$r]) != $cols) {
// return false;
// }
$cols = count($matrix[$r]);
// 确保列数相同,否则退出
if (count($matrix[$r]) != $cols) {
return false;
}
}
// 现在,循环遍历这一行的所有列
for ($c = 0; $c
// 确保设置了这个条目和一个数字
if (!(isset($matrix[$r][$c]) &&
is_numeric($matrix[$r][$c]))) {
return false;
}
}
}
}
}
// 好的,如果我们真的做到了这一步,那么我们没有发现矩阵有任何问题。
return true;
}
// 一个函数返回矩阵中的行-不检查有效性,它假设矩阵是格式良好的。
function _matrix_rows($matrix)
{
# 返回该矩阵的行数
return count($matrix);
}
// 返回矩阵列的函数-不检查有效性,它假定矩阵格式良好。
function _matrix_columns($matrix)
{
# 返回该矩阵的所有列数
return count($matrix[0]);
}
#这个函数对矩阵元素执行操作,例如加减。
#要使用它,请将2个矩阵和您希望执行的操作