查看: 673|回复: 4|关注: 0

[已解决] EVAL语句中嵌套FOR循环

[复制链接]

新手

8 麦片

财富积分


050


4

主题

6

帖子

0

最佳答案
我需要用EVAL语句来循环一大段代码,但是代码中间有一个小的for循环,想问一下如何才能解决。for i=1:m
   re2(i,:)=re2(i,:)-mean(re2(i,:));%矩平化处理
end


我的这个是一个错误的答案,希望有大神可以帮我解决一下
    eval('for i = 1:m')
    eval('re2(i,:)=re2(i,:)-mean(re2(i,:));')
    eval('end')

感谢!
回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

书籍作者

535 麦片

财富积分



87

主题

3689

帖子

91

最佳答案
  • 关注者: 242
发表于 2019-12-19 18:05:53 | 显示全部楼层 |此回复为最佳答案



可以尝试拼接字符串来处理。

例如
  1. clc; clear all;
  2. eval('m=10;')
  3. eval('re2 = rand(m, 15);')
  4. eval('for i=1:m re2(i,:)=re2(i,:)-mean(re2(i,:)); end')
  5. disp(re2)
复制代码


视觉参考书籍《计算机视觉与深度学习实战——以MATLAB、Python 为工具》[刘衍琦等]

  1.   列 1 至 3

  2.     -4.776700918238518e-01     2.985434758090479e-01     3.349796691816808e-01
  3.     -3.719323758582732e-01     2.935197607742235e-01    -2.884900552393564e-01
  4.      4.856360518489340e-01    -3.686298770490130e-01    -3.098217400854739e-01
  5.     -4.245068906373300e-01    -2.770446428405900e-01     1.521147364829539e-01
  6.      1.045015360020562e-01    -4.102615552694808e-01    -6.586807658280064e-02
  7.     -3.503189222150588e-02     1.754204473379901e-01    -9.079701063537321e-02
  8.      2.484121630521553e-01     3.971678958888393e-01     1.294528895355354e-01
  9.      3.844470299372385e-01    -4.512937304438342e-01     1.316005604471188e-01
  10.      2.565526354049259e-01    -1.576107238188206e-01    -2.588558923799470e-01
  11.     -3.759697478720252e-01    -6.758558150021099e-02     2.396046579392523e-01

  12.   列 4 至 6

  13.     -2.715836065704572e-01     1.637747313327356e-01    -2.309624841091109e-01
  14.     -3.249059471059499e-01     4.775662111466716e-02    -3.788793017518440e-01
  15.     -2.987832627700283e-01     1.783732558111699e-01    -2.455071942557151e-01
  16.      3.566524792983412e-01     2.451170481316151e-01    -5.606311892069602e-01
  17.      3.566586109590770e-01     2.239001864807317e-01    -4.921735522457477e-02
  18.      2.922753240002222e-01    -2.126496944579396e-01    -1.468815954699544e-01
  19.     -1.608600089719917e-01     3.641257695799289e-01    -3.765135898444133e-01
  20.      3.368332358256179e-01    -3.419499353007870e-01    -1.180427543827251e-01
  21.      5.366178811917045e-01     1.297613018618611e-01     2.156732219330393e-02
  22.      3.055737679805851e-01    -5.960670160849113e-03     1.181487646393029e-01

  23.   列 7 至 9

  24.      3.403546060767815e-03    -1.998284431067492e-01    -1.048871927367307e-01
  25.      4.336116666568539e-01    -3.382846308082813e-01     3.884723074800630e-01
  26.     -1.045247547691400e-01    -1.544865892069583e-01     8.220926364415837e-02
  27.      3.877117377021144e-02     1.899587668778009e-01     1.944506697502325e-01
  28.     -2.830784785595497e-01    -6.569984175321736e-02     4.054429453718855e-01
  29.     -2.444811822257706e-01    -3.004836986630283e-02     5.103821161917752e-01
  30.     -5.246815712847527e-01     2.366323381428289e-01    -3.516158736703674e-01
  31.     -3.817489029324980e-01     4.560347380535768e-01     1.860267897031663e-01
  32.     -3.529685674784460e-01    -3.426796802801969e-01    -2.103370898781498e-02
  33.     -1.482819398027413e-01    -3.361046883479492e-01    -3.499304281873483e-02

  34.   列 10 至 12

  35.     -1.158983263217624e-01    -3.122733937994185e-01     3.632266563563643e-01
  36.      4.164417528146114e-02    -2.759020065857134e-01     3.039564255111142e-01
  37.      7.342618310186888e-02     1.172675761528452e-02     3.167278113392757e-02
  38.      2.450775259788636e-01     2.328774193364858e-03    -1.967803733782949e-01
  39.     -8.827821685491960e-02     4.173287495507690e-01    -2.305404971682088e-01
  40.     -7.540222131906310e-02     5.144265493188466e-02    -2.299478331173585e-01
  41.      3.259327898385567e-03    -2.006086034857765e-01    -4.010765467435101e-01
  42.      5.002183629114612e-01    -2.155089033484477e-01    -2.036803340664702e-01
  43.      3.684341833777913e-01     4.282584727271673e-01     1.636713506591136e-01
  44.      4.174153121301505e-02     8.115815780343960e-02     1.329198811970529e-01

  45.   列 13 至 15

  46.      4.911533125253910e-01    -3.453017402689104e-01     4.033238874710042e-01
  47.     -2.075859604143819e-01     5.143997460091290e-01     1.626195749362872e-01
  48.      1.520744428126276e-01     2.628207535191329e-02     4.403526068164458e-01
  49.      1.253408307207797e-01     1.620157251670812e-01    -2.528646343080679e-01
  50.     -3.219724055015568e-01    -3.351541440042864e-01     3.422385425540761e-01
  51.      1.927647459407335e-01    -1.353286567420159e-01    -2.171683234732075e-02
  52.      4.197740128272179e-01     1.634217953643144e-01     5.311000171160607e-02
  53.     -4.320726908206349e-01     1.415479586109731e-01     7.588575806244335e-03
  54.     -3.869595010956340e-01    -2.183409268792582e-01    -1.664141464957509e-01
  55.     -4.278575458713363e-02     3.356623303899046e-01    -2.431276660729084e-01

  56. >>
复制代码


回复此楼 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

入门

247 麦片

财富积分


50500


1

主题

119

帖子

26

最佳答案
  • 关注者: 1
发表于 2019-12-19 18:06:35 | 显示全部楼层
试试
eval('for i=1:m; re2(i,:)=re2(i,:)-mean(re2(i,:));end')
回复此楼 已获打赏: 0 积分

举报

新手

8 麦片

财富积分


050


4

主题

6

帖子

0

最佳答案
 楼主| 发表于 2019-12-19 19:30:37 | 显示全部楼层
lyqmath 发表于 2019-12-19 18:05
可以尝试拼接字符串来处理。

例如

感谢您!
回复此楼 已获打赏: 0 积分

举报

新手

7 麦片

财富积分


050


0

主题

3

帖子

0

最佳答案
  • 关注者: 1
发表于 2019-12-20 08:59:33 | 显示全部楼层
点个赞,支持一下
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表