我正在尝试编写一个函数,用另一个数组的位置数替换一个特定数量的数组。但是,它不允许我这样做。我是使用MATLAB的新手。任何帮助将不胜感激。
arr1 = [
1 3 8 9
2 47 10 4
2 4 6 86
6 8 11 4];
arr2 = [
3 4 1 8
8 2 99 1
0 6 77 11
9 3 2 1]
我想编写一个函数,用任意特定数量的arr1替换该索引的arr2
个数。假设我想从2
替换arr1
,那么输出应为
out = [
1 3 8 9
8 47 10 4
0 4 6 86
6 8 11 4];
arr1(arr1==2) = arr2(arr1==2)
这允许我这样做。但是,它不允许我编写像
这样的泛化函数function new = arrayReplace(arr1,arr2,number)
idx = arr1==number;
new = (arr1(idx)=arr2(idx));
end
替换任意数量的arr1
。
任何帮助!?
答案 0 :(得分:3)
你快到了:
function arr1 = arrayReplace(arr1,arr2,number)
idx = arr1==number;
arr1(idx) = arr2(idx);
end
或者,可能不那么令人困惑:
function arr3 = arrayReplace(arr1, arr2, number)
idx = arr1==number;
arr3 = arr1;
arr3(idx) = arr2(idx);
end