matlab - 在 For 循环中定义变量
问题描述
当在 for 循环中满足 if 语句时,我试图重新定义变量。这是不允许的吗?
a = [0,0,0;0,1,0;0,0,0];
[row,col] = size(a);
x0 = -1;
x1 = -1;
for i = 1:row
for ii = 1:col
if a(i,ii) ~= 0
x0 = i;
break
end
end
end
for v = 1:row-1
for vv = 1:col
if a(row - v,vv) ~= 0
x1 = v;
break
end
end
end
在这种情况下,x0 和 x1 不会被覆盖。为什么?
解决方案
在你的循环中,当 if 语句触发时,
a(row-v,vv) ~= 0
当 v = 1 时为真,因为 row-1 = 2,yielding a(2,2),然后你将 v 设置为 1。我相信你的代码,你会想要做
for v = 0:row-1
for vv = 1:col
if a(row - v,vv) ~= 0
x1 = row - v;
break
end
end
end
请注意,您还希望将第一行的范围更改为 0:row-1 以便您点击每一行;row-0 将产生最后一个数组索引:3
推荐阅读
- python - python - 用户提供的函数的衍生物(从文件中读取)
- html - 离子行显示同一行中的所有元素
- ios - 无法从呈现的视图控制器访问 TopView
- r - 根据 R 中的多个排名列输出收藏夹
- java - 当我的应用在 Android Studio Simulator 上运行时,文本对齐按预期居中,但是当它在三星 S2 上运行时,文本对齐变得正确
- html - 引导库
- python - Dropbox API - 尝试上传文件
- jquery - Jquery 将新行追加到 html 表
- laravel-5 - Laravel5 中动态填充的选择菜单
- javascript - 为什么我的 fetch 请求被调用了两次?