MATLAB自动生成的函数可输入变量而不是.txt文件

如何解决MATLAB自动生成的函数可输入变量而不是.txt文件

MATALB的“导入数据”功能自动生成一个输入.txt文件并输出表的功能。此函数的前几行如下所示:

@RequestScope
class RequestContext {

  private String requestId;
  private String traceId; 
  private String authorisedId; 
  private String routeName; 
    
  // few more fields 

  @Inject RequestContext(SecurityContext securityContext) {
        this.requestId = UUID.randomUUID().toString();
        if(securityService.getAuthentication().isPresent()){
          this.authorisedId = (securityService
                              .getAuthentication().get()).getUserId().toString();
    }
  }
  
  /* to be updated in controller method interceptors */ 
  public void updateRouteName(String name){
      this.routeName = name; 
  }

但是,我需要此函数来输入变量,而不是将具有完全相同效果的.txt文件。我已经将所有数据以变量的形式存储在.txt文件中。我以为我可以简单地用变量替换using namespace sensor_msgs; using namespace std; void chatterCallback(const darknet_ros_3d_msgs::BoundingBoxes3d::ConstPtr& msg) { cout<<"Entering call back function" <<endl; int person_count = 0; int inc = 1; while (msg->bounding_boxes[0].Class == "person" ) { for(int count=0; count <= person_count; count++) { cout<<"Increment variable" << count <<endl; const std::string PLANNING_GROUP = "crane_control"; moveit::planning_interface::MoveGroupInterface move_group(PLANNING_GROUP); moveit::planning_interface::PlanningSceneInterface planning_scene_interface; string str= to_string(count); moveit_msgs::CollisionObject collision_object; collision_object.header.frame_id = "world"; collision_object.id = "BOX_person__" + str; cout<<"Person_BB:" << collision_object.id <<endl; shape_msgs::SolidPrimitive primitive; primitive.type = primitive.BOX; primitive.dimensions.resize(3); std::vector<float> array_xdim(inc); std::vector<float> array_ydim(inc); std::vector<float> array_zdim(inc); array_xdim[inc] = msg->bounding_boxes[0].xmax - msg->bounding_boxes[0].xmin; array_ydim[inc] = msg->bounding_boxes[0].ymax - msg->bounding_boxes[0].ymin; array_zdim[inc] = msg->bounding_boxes[0].zmax - msg->bounding_boxes[0].zmin; cout<<"dimx:" << array_xdim[inc] <<endl; cout<<"dimy:" << array_ydim[inc] <<endl; cout<<"dimz:" << array_zdim[inc] <<endl; primitive.dimensions[0] = array_xdim[inc]; primitive.dimensions[1] = array_ydim[inc]; primitive.dimensions[2] = array_zdim[inc]; geometry_msgs::Pose box_pose; std::vector<float> array_xpos(inc); std::vector<float> array_ypos(inc); std::vector<float> array_zpos(inc); array_xpos[inc] = (msg->bounding_boxes[0].xmax + msg->bounding_boxes[0].xmin)/2; array_ypos[inc] = (msg->bounding_boxes[0].ymax + msg->bounding_boxes[0].ymin)/2; array_zpos[inc] = (msg->bounding_boxes[0].zmax + msg->bounding_boxes[0].zmin)/2; box_pose.position.x = array_xpos[inc]; box_pose.position.y = array_ypos[inc]; box_pose.position.z = array_zpos[inc]; box_pose.orientation.w = 1.0; cout<<"position_x:" << box_pose.position.x <<endl; cout<<"position_y:" << box_pose.position.y <<endl; cout<<"position_z:" << box_pose.position.z <<endl; collision_object.primitives.push_back(primitive); collision_object.primitive_poses.push_back(box_pose); collision_object.operation = collision_object.ADD; std::vector<moveit_msgs::CollisionObject> collision_objects; collision_objects.push_back(collision_object); planning_scene_interface.applyCollisionObjects(collision_objects); cout<<"count:" << count <<endl; } inc++; person_count++; cout<<"Person count" << person_count <<endl; } cout<<"Exiting call back function" <<endl; } int main(int argc,char** argv) { ros::init(argc,argv,"cpp_subscriber"); ros::NodeHandle n; ros::Subscriber sub = n.subscribe("/darknet_ros_3d/bounding_boxes",50,chatterCallback); ros::spin(); return 0; } ,然后删除function output= myfunction(filename) delimiter = {';','='}; %% Read columns of data as text: formatSpec = '%s%s%s%s%s%s%[^\n\r]'; %% Open the text file. fileID = fopen(filename,'r'); dataArray = textscan(fileID,formatSpec,'Delimiter',delimiter,'TextType','string','ReturnOnError',false); %% Close the text file. fclose(fileID); filename行代码,但这是行不通的。

解决方法

在循环中使用此自动生成的功能循环遍历您拥有的文件(名称)

% path to folder with txt-files
pFlr = pwd; % path to working directory
Lst = dir( fullfile(pFldr,'*.txt') ); % only get txt-files

for i = 1:length(Lst)
   % path to file
   pFl = fullfile( Lst(i).folder,Lst(i).name );
   % read file by calling the auto-generated function
   Dat1 = myfunction( pFl );
end

通过这种方式,您可以循环访问所有文件,例如将数据存储在表中:

k = 1; % control variable
for i = 1:length(Lst)
   % path to file
   pFl = fullfile( Lst(i).folder,Lst(i).name );
   % read file by calling the auto-generated function
   Dat1 = myfunction( pFl );


   % do something with this data,e.g. store it
   if i == 1 % allocate data if
      Dat = Dat1;
      % extend for allocation
      vSz= height(Dat1)*length(Lst);
      Dat(vSz,:) = Dat1(1,:); % assign the first row of the first table to the last row of the allocated table to expand it
   else
      Dat(k:k+size(Dat1)-1,:) = Dat1;
   end
   k = k + size(Dat1);
end
% crop table
Dat = Dat(1:k-1,:);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-