大家早上好
我致力于开发数学模型来解决工业工程问题之一,但我在编写MATLAB代码时遇到了问题。所以我在下面的代码中简化了这个问题。我需要在下一步使用for函数之后将X的所有结果合并到一个矩阵中(在这个简单的情况下,这个矩阵将是40 * 3)
LIST=randi([0,1],[4,3]);
for i = 1:10
j=i
V=randi([0,1],[4,3]);
for m = 1:4
for n = 1:2
if V(m,n)== 1;
X(m,n) = LIST(m,n);
elseif V(m,n)== 0;
X(m,n) = 2;
end
end
end
for m = 1:4
for n = 3
if V(m,n)== 1;
X(m,n) = LIST(m,n);
elseif V(m,n)== 0;
X(m,n) = 3;
end
end
end
X
end
感谢您的时间和考虑
答案 0 :(得分:0)
在外循环(postRequest("http://your-url", "name=value&anothername=somevalue");
)的每次迭代中,for i = 1:10
矩阵中的值都会被覆盖。
为了存储您需要的所有值,以增加X
的第二个循环(X
)的最大限制值for m = 1:4
矩阵的行值。4
。
您可以通过修改X
矩阵的索引来实现,如下所示:
X(m+(i-1)*4,n)
你可以让你的脚本更多"一般"通过使用函数size函数确定将其评估为LIST
矩阵中的行数的限制:
[n_row,n_col]=size(LIST)
以这种方式
1
到4
。1+(2-1)*4
到4+(2-1)*4
,范围从5
到8
这是更新后的代码
LIST=randi([0,1],[4,3]);
[n_row,n_col]=size(LIST)
for i = 1:10
j=i
V=randi([0,1],[4,3]);
% for m = 1:4
for m = 1:n_row
for n = 1:2
if V(m,n)== 1;
% X(m,n) = LIST(m,n);
X(m+(i-1)*n_row,n) = LIST(m,n);
elseif V(m,n)== 0;
% X(m,n) = 2
X(m+(i-1)*n_row,n) = 2;
end
end
end
% for m = 1:4
for m = 1:n_row
for n = 3
if V(m,n)== 1;
% X(m,n) = LIST(m,n)
X(m+(i-1)*n_row,n) = LIST(m,n);
elseif V(m,n)== 0;
% X(m,n) = 3;
X(m+(i-1)*n_row,n) = 3;
end
end
end
X
end
希望这有帮助。
Qapla'