-
為了實現通用性,從任意長度的一位數的陣列中獲取 m 個數字,並獲取 m 個數字以形成乙個新陣列。
dt = 1:30;任意長度的 1 位陣列的 %。
n = 2;間隔的百分比。
m = 2;% 取出。
w = size(dt,2);原始陣列的長度。
ip = 0: (fix(w (m+n))) 取出的組數。
ixf = ip*(m+n)+1;% 獲取每個組開頭的索引值。
ixt = ixf+n-1;% 取出每個組末尾的索引值。
ixf(ixf>w) = 刪除超出原始陣列索引範圍的值 ixt(ixt>w) = 相同)。
r = cell2mat(arrayfun(@(f,w) dt(f:w),ixf,ixt,'un',假))生成乙個新陣列。r =
-
不要等待迴圈,嘗試執行以下**,x=randn(1,20)x1=x(1:4:end)。
x2=x(2:4:end)
x3=[x1;x2];
x3=x3(:)'
此外,如果要對值進行捨入,請不要使用 randn
x=randint(1,20,[1 10])
-
x=randn(1,n);
sn = floor(n/2);繪製的取樣點數。
獲取要提取的序列號。
a = 1:2:sn;
a1 = 2*a;
a2 = a1-1;
a = [a1,a2];
a = sort(a);
輸出結果。 re = x(a);
-
以下過程將滿足示例的要求。
x=1:1:100;
y=ones(1,50);
for i=1:25
y(:,2*(i-1)+1) =x(:,4*(i-1)+1);
y(:,2*(i-1)+2) =x(:,4*(i-1)+2);endxy
-
以下程式可以實現(1到100,每兩個數字抽取兩個)x=1:1:100;
y=ones(1,50);
for i=1:25
y(:,2*(i-1)+1) =x(:,4*(i-1)+1);
y(:,2*(i-1)+2) =x(:,4*(i-1)+2);endxy
-
x=randn(1,n);
sn = floor(n/2);繪製的取樣點數。
獲取要提取的序列號。
a = 1:2:sn;
a1 = 2*a;
a2 = a1-1;
a = [a1,a2];
a = sort(a);
輸出結果。 re = x(a);
-
以乙個 10 維向量為例,效果 1 的步驟如下。
a=[1 2 3 4 5 6 7 8 9 10];
b=;c=;
for i=1:10
if mod(i,2)==1
b=[b a(i)];
elseif mod(i,2)==0
c=[c a(i)];
endend
new=[b c]
效果 2 的步驟如下。
a=[1 2 3 4 5 6 7 8 9 10];
b=;c=;
d=;for i=1:10
if mod(i,3)==1
b=[b a(i)];
elseif mod(i,3)==2
c=[c a(i)];
elseif mod(i,3)==0
d=[d a(i)];
endend
new=[b c d]
-
例如:x = [1 2 3 4 5 6 7 8 9 10 11 12];
n = length(x);
y1 = [x(1:2:n);x(2:2:n)];
y2 = [x(1:3:n);x(2:3:n);x(3:3:n)];
具體情況不同,可以適當修改。
-
x=1:12;
y1=reshape(x,2,);
y2=reshape(x,3,);
y=reshape(x,m,);
當然,x 的長度需要能被 m 整除。
-
這個想法相對簡單:
隨機生成兩個數字,取值範圍為[1,矩陣的列數],m,n隨機生成兩個數字,取值範圍為[1,矩陣的行數],q,p,其餘為使用下標交換。
t=x(m,q)
x(n,p)=x(m,q)
x(m,q)=tcomplete。
-
結合以上答案。
a=randint(2,2,[1 10])m=a(1,1);q=a(1,2)
n=a(2,1);p=a(2,2) % 其實不是那麼可變,但是我很懶,複製貼上到樓上就行了哈哈。
剩下的就是交換下標了。
t=x(m,q)
x(n,p)=x(m,q)
x(m,q)=t
完成:這不是澆水嗎?
-
y 是要插值的 2400 個點的陣列。
x = 1:2400;原始陣列 xx = 1:2399 3599 的坐標:
2400;插值陣列的坐標 yy = interp1(x,y,xx,'linear');yy 是插值後得到的 3600 點陣列。
linear 是線性插值; 其他選項包括 Nearest、Spline 和 Pchip
-
1. 如果將兩個數字組成乙個 1x2 矩陣 a,則大值為 max=max(a),小值為 min=min(a)。
2.還可以使用以下功能:
max=0;
if a>b
max=a;
elsemax=b;end
-
#include
a-b)&0x80000000
32 為機器,int,最高位置 1
使用 AND 運算確定 a-b 是否為非負數。
int main()
return 0;輸出:
-
讀取輸入數:scanf
最小常見倍數:折騰和分割。