>;L`â€ßZä€ûûè
First input is a pair of \$[row,column]\$, second input is a pair of \$[symbol2,symbol1]\$. Output is a matrix of characters.
Try it online (footer J» is to pretty-print; feel free to remove it to see the actual output-matrix).
Explanation:
>; # Increase both values in the first (implicit) input-pair by 1, then halve # e.g. [5,13] → [6,14] → [3,7] L # Map both to a list in the range [1,n] # → [[1,2,3],[1,2,3,4,5,6,7]] ` # Pop and push both separated to the stack # → [1,2,3] and [1,2,3,4,5,6,7] â # Get the cartesian product of these two lists # → [[1,1],[1,2],[1,3],[1,4],[1,5],[1,6],[1,7],[2,1],[2,2],[2,3],[2,4],[2,5], # [2,6],[2,7],[3,1],[3,2],[3,3],[3,4],[3,5],[3,6],[3,7]] €ß # Get the minimum of each inner pair # → [1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,2,3,3,3,3,3] Z # Push the flattened maximum (without popping the list) # → [1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,2,3,3,3,3,3] and 3 ä # Split the list into that many equal-sized parts so we have a matrix # → [[1,1,1,1,1,1,1],[1,2,2,2,2,2,2],[1,2,3,3,3,3,3]] €û # Palindromize each row # → [[1,1,1,1,1,1,1,1,1,1,1,1,1], # [1,2,2,2,2,2,2,2,2,2,2,2,1], # [1,2,3,3,3,3,3,3,3,3,3,2,1]] û # Palindromize the entire matrix # → [[1,1,1,1,1,1,1,1,1,1,1,1,1], # [1,2,2,2,2,2,2,2,2,2,2,2,1], # [1,2,3,3,3,3,3,3,3,3,3,2,1], # [1,2,2,2,2,2,2,2,2,2,2,2,1], # [1,1,1,1,1,1,1,1,1,1,1,1,1]] è # 0-based modulair index each into the (implicit) second input-string # e.g. "-@" → # [["@","@","@","@","@","@","@","@","@","@","@","@","@"], # ["@","-","-","-","-","-","-","-","-","-","-","-","@"], # ["@","-","@","@","@","@","@","@","@","@","@","-","@"], # ["@","-","-","-","-","-","-","-","-","-","-","-","@"], # ["@","@","@","@","@","@","@","@","@","@","@","@","@"]] # (after which the matrix is output implicitly)