仍在尝试掌握 Matlab 的基础知识。
我有一个函数 f,它以矩阵 A 和两个数字(最大值和增量)作为参数。
我还有一个函数g,它接受一个矩阵A和一个数字阈值并返回一个矩阵B,如果A中一个元素的值大于或等于阈值,则B中的对应值应该是1,如果它更小大于或等于-threshold,应为-1,否则为0。函数f和g都不应改变原始矩阵。
我希望函数 f 在对 g 的调用中尝试不同的阈值值,并且我希望每次调用的结果在新矩阵中水平排列。
我不确定如何执行此功能 f,我猜最简单的方法是创建一个数组:
t1= [-threshold:delta:threshold];
但是如何为数组中元素的每个值调用 g 并将它们排列在一个新数组中?
function B = f(A, threshold, delta)
t1= [-threshold:delta:threshold];
%What to write here?
end
function B = g(A, threshold)
B=(A>=threshold)-(A<=-threshold);
end
如果
A=[[-3:-1]' [1:3]']
然后
f(A, 2, 1)
应该返回与命令相同的矩阵 [[-1 -1 0]' [0 1 1]' [-1 -1 0]' [0 1 1]']