【发布时间】:2023-03-31 13:05:02
【问题描述】:
我一直在尝试编写一个脚本来处理一串 3D 变量,eV50、eV60、eV70 等(意思是从1950、1960、1970 中提取的值以此类推。这些3D变量的大小为31x145x192。)转换成一串3D输出,即m1、m2、m3等(尺寸为1x145x192)。
这对你们中的一些人来说可能很简单,但在过去的 24 小时里,我一直在努力解决这个问题。我通过使用循环和 EVAL 尝试了这两种方法,但是我无法理解表达式中的 '' 括号,所以我想这就是我无法正确平衡方程的原因。
*X为数据集eV50、eV60、eV70等(表示从1950、1960、1970等中提取的值)
基本上我试图把这个脚本变成一个循环或类似的东西:
'[m1 v1] = extfunc (eV50);
[ m2 v2 ] = extfunc ( eV60 ) ;
[ m3 v3 ] = extfunc ( eV70 ) ;
[ m4 v4 ] = extfunc ( eV80 ) ;
[ m5 v5 ] = extfunc ( eV90 ) ;
[ m6 v6 ] = extfunc ( eV100 ) ;
等等...
'
方法一:
'[mean vars] = eval(['extfunc( sprintf(',eV%d', (50:10:80)') ')']); '
方法二:
*我已将eV50、eV60、eV70重命名为eV1、eV2、eV3等等...
' for i=1:6
m(i)=extfunc_h(sprintf('eV%d', i));
结束'
extfunc 的用法:-
[mean variance] = extfunc(eV50)
在方法 1 中,我有不平衡方程和方法 2,MATLAB 返回了错误消息
???索引超出矩阵维度。
【问题讨论】: