考慮以下示例,對于用戶指定的奇數N = 51,應看到以下輸出:
A = [1 4 2 5 3];
對于N = 7: A = [1 5 2 6 3 7 4];
更一般的奇數形式N:
A = [1 ceil(N/2 1) 2 ceil(N/2 2) ... N ceil(N/2)];
我解決了這樣的問題
A = zeros(1, N);
a1 = 1:ceil(N/2): a2 = ceil(N/2 1):N;
j = 1; k = 1;
for i = 1:N
if rem(i, 2) ~= 0
A(i) = a1(j);
j = j 1;
else
A(i) = a2(k);
k = k 1;
end
end
我覺得有更好的方法來編碼問題,優化和簡單。如果你能引導我走向我正在尋找的東西,我將不勝感激。
uj5u.com熱心網友回復:
一個線性解決方案:
A([1:2:N, 2:2:N]) = 1:N;
可以看成是這些索引操作的組合:
A(1:2:N) = 1:(N 1)/2;
A(2:2:N) = (N 3)/2:N;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/440057.html
