从文本文件导入Matlab数据

从文本文件导入Matlab数据,matlab,import,Matlab,Import,如何导入以下格式的数据 1.0,X .,-1.0 桌子的大小可能不同。正如在下一个文件中一样,也可以是有效的输入文件 .,.,.,1.0 .,X,.,-1.0 .,.,.,. 我曾尝试使用readtable读取数据,然后使用strcmp将值分配给不同的矩阵,但它不起作用。我做错了什么 代码: 代码中有两个问题。一种是readtable将文件作为表读取,并将文件中的第一行作为列的名称。因此,您应该将名称放在文件的顶部 其次,要访问表的内容,需要使用{}而不是()。此外,无需使用for循环,因为

如何导入以下格式的数据

1.0,X
.,-1.0
桌子的大小可能不同。正如在下一个文件中一样,也可以是有效的输入文件

.,.,.,1.0
.,X,.,-1.0
.,.,.,.
我曾尝试使用readtable读取数据,然后使用strcmp将值分配给不同的矩阵,但它不起作用。我做错了什么

代码:


代码中有两个问题。一种是
readtable
将文件作为表读取,并将文件中的第一行作为列的名称。因此,您应该将名称放在文件的顶部

其次,要访问表的内容,需要使用{}而不是()。此外,无需使用for循环,因为您可以使用逻辑索引将值分配给矩阵条。因此,更改后的代码如下:

dataArray = readtable('environment_file.txt');
[n, m] = size(dataArray);
bar_b = zeros(n, m);
bar_b(strcmp(dataArray{:, :}, '.')) = 3;
bar_b(strcmp(dataArray{:, :}, 'X')) = -10;
bar_b(strcmp(dataArray{:, :}, '1.0')) = 1;
bar_b(strcmp(dataArray{:, :}, '-1.0')) = -1;

代码中有两个问题。一种是
readtable
将文件作为表读取,并将文件中的第一行作为列的名称。因此,您应该将名称放在文件的顶部

其次,要访问表的内容,需要使用{}而不是()。此外,无需使用for循环,因为您可以使用逻辑索引将值分配给矩阵条。因此,更改后的代码如下:

dataArray = readtable('environment_file.txt');
[n, m] = size(dataArray);
bar_b = zeros(n, m);
bar_b(strcmp(dataArray{:, :}, '.')) = 3;
bar_b(strcmp(dataArray{:, :}, 'X')) = -10;
bar_b(strcmp(dataArray{:, :}, '1.0')) = 1;
bar_b(strcmp(dataArray{:, :}, '-1.0')) = -1;

您的数据文件的格式无法立即清除。X代表什么?它是一个字符还是一个数字变量?请给出数据文件的完整描述/示例。是的,这是一个字符。我可以忽略“,”但要将其余值存储在矩阵中。这些点也是一个字符吗?是的。稍后我将用整数替换它们的值。您的数据文件的格式尚未立即清除。X代表什么?它是一个字符还是一个数字变量?请给出数据文件的完整描述/示例。是的,这是一个字符。我可以忽略“,”但要将其余值存储在矩阵中。这些点也是一个字符吗?是的。稍后我将用整数替换它们的值。