我有一个从标签文件导入的结构数组,有100多个名称\双行。第一行有一个字符值(name \ char)。我正在尝试将其作为矩阵加载并将其转换为单元格,完全删除顶行。
但是当我使用cell2mat(array)
时,它有错误:
输入单元格数组的所有内容必须具有相同的数据类型。
我知道这是来自Names vs. double列。但有没有办法将其转换为矩阵?或者,如果数据是
行name | 1000x1 double
将它留作单元格数组更好吗?
答案 0 :(得分:0)
不可能有一个包含字符串和数值的矩阵。如果你想要这样的东西,单元格阵列是你唯一的选择。但是,如果您想使用矩阵/向量运算或期望矩阵/向量作为输入的函数来处理数值,那将是非常有限的。一种选择是分别存储字符串和数字数据;将字符串保留在单元格数组S
中,将数字数据保存在矩阵M
中。然后,跟踪元素。例如,S{i}
和行M(i, :)
都可以与原始表中的条目i
相对应。另一个选择是使用struct()
创建自己的数据结构,if ([self.sitRUser isParent]) {
//[self performSegueWithIdentifier:PARENT_HOME_SEGUE sender:self];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"HomeStoryboard" bundle:nil];
HomeViewController *rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
[navController setViewControllers: @[rootViewController] animated: YES];
UIStoryboard *storyboardLogin = [UIStoryboard storyboardWithName:@"LogIn" bundle:nil];
MenuTableViewController *rearViewController = [storyboardLogin instantiateViewControllerWithIdentifier:@"MenuTableView"];
[self.revealViewController setFrontViewController:navController];
[self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES];
[self.revealViewController setRearViewController:rearViewController animated:YES];
[self.navigationController setViewControllers:@[rootViewController] animated:YES];
} else {
//[self performSegueWithIdentifier:SITR_HOME_SEGUE sender:self];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"SitterHomeStoryboard" bundle:nil];
SitterHomeViewController *rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"SitterHomeViewController"];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
[navController setViewControllers: @[rootViewController] animated: YES];
[self.revealViewController setFrontViewController:navController];
[self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES];
[self.navigationController setViewControllers:@[rootViewController] animated:YES];
}
可以包含字符串和数值。