Arrays 用另一个数组的该位置的编号替换数组的特定编号
我正在尝试编写一个函数,用另一个数组的该位置的数字替换一个数组的特定数字。然而,它不允许我这样做。我对使用MATLAB很陌生。任何帮助都将不胜感激Arrays 用另一个数组的该位置的编号替换数组的特定编号,arrays,matlab,Arrays,Matlab,我正在尝试编写一个函数,用另一个数组的该位置的数字替换一个数组的特定数字。然而,它不允许我这样做。我对使用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 = [
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]
我想编写一个函数,用该索引的arr2
数替换任何特定的arr1数。假设我想从arr1
替换2
,那么输出应该是
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
有人帮忙吗 你就快到了:
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
谢谢一个小小的错误浪费了我两个小时,只是盯着代码看。