const matrixInput = document.getElementById(‘matrixInput’);
const result = document.getElementById(‘result’);
function transposeMatrix(matrix) {
if (matrix.length === 0) return [];
const rows = matrix.length;
const cols = matrix[0].length;
let transposed = [];
for (let c = 0; c < cols; c++) {
let newRow = [];
for (let r = 0; r row.join(‘, ‘)).join(‘n’);
}
function calculateTranspose() {
let raw = matrixInput.value.trim();
if (!raw) {
result.textContent = ‘Transposed matrix will appear here.’;
return;
}
let rows = raw.split(‘n’).map(r => r.trim());
let matrix = [];
try {
for (let r of rows) {
let values = r.split(‘,’).map(x => {
let n = parseFloat(x.trim());
if (isNaN(n)) throw new Error(‘Invalid number’);
return n;
});
matrix.push(values);
}
// Check all rows have equal length
const len = matrix[0].length;
for (let r of matrix) {
if (r.length !== len) throw new Error(‘Rows must have equal number of columns’);
}
let transposed = transposeMatrix(matrix);
result.textContent = formatMatrix(transposed);
} catch(e) {
result.textContent = ‘Error: ‘ + e.message;
}
}
document.getElementById(‘transposeForm’).addEventListener(‘input’, calculateTranspose);
// Optional: Google Analytics event on input focus for tracking user interaction
const inputs = document.querySelectorAll(‘#transposeForm input, #transposeForm textarea’);
inputs.forEach(input => {
input.addEventListener(‘focus’, () => {
if (typeof gtag === ‘function’) {
gtag(‘event’, ‘input_focus’, {
‘event_category’: ‘Transpose Matrix Calculator’,
‘event_label’: ‘User focused on input’
});
}
});
});