Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab工作空间中的数据格式_Matlab - Fatal编程技术网

Matlab工作空间中的数据格式

Matlab工作空间中的数据格式,matlab,Matlab,我在“Matlab工作区”中存储了以下格式的数据: data = Columns 1 through 12 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 我想把它转换成这个简单的形式: -1-1-1-1-1-1-1-1-1-1-1-1 或者即使在这种形式下也可以接受: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

我在“Matlab工作区”中存储了以下格式的数据:

data = 
Columns 1 through 12

-1    -1    -1    -1    -1    -1    -1    -1    -1    -1    -1    -1
我想把它转换成这个简单的形式:

-1-1-1-1-1-1-1-1-1-1-1-1
或者即使在这种形式下也可以接受:

-1    -1    -1    -1    -1    -1    -1    -1    -1    -1    -1    -1
与此命令的结果相等的输出数据:

Str=('-1-1-1-1-1-1-1-1-1-1-1-1-1-1')

最初,我有一个数据格式为“type=Double”:

我使用以下命令将此类型的双精度数据保存到变量中:

save data.txt data
然后,我使用以下代码将此数据导入.mat文件以进行进一步操作:

str = uiimport(); % import data
str = sprintf('%g', str); % or mat2str(str)
由此产生的数据类型是虽然类型char,但这是我进一步处理它所需的数据类型。但它不起作用。但是,如果我直接将该数据作为str=('-1-1-1-1-1-1')放入.mat文件中;它起作用。

原因 我很难理解为什么你提到
num2str
sprintf
不起作用。我认为您试图将
uiimport
的输出直接传递给
num2str
sprintf
。这将导致下面的错误。在你的问题中包含这一点会很有帮助

使用sprintf时出错
未为“struct”输入定义函数

解决方案
uiimport
的输出是一个结构,所有结果变量都作为字段。因此,您需要像这样处理此结构中的
data
-字段:
S.data

代码如下:

结果是:


num2str(值)和sprintf('%g',值)在我的情况下不起作用。num2str有什么问题?为什么您的输入有24个值,而预期的输出只有12个?您必须在这里帮助我们。你已经排除了两个完全合理的可能性,没有任何解释为什么它们是错误的。写一个好问题的一部分是展示你已经尝试了什么,以及为什么这些尝试没有产生预期的结果。@Daniel我只是将输出缩短为更少的1。所以它与编程逻辑无关。我只是用我的答案代替了你的问题。也许这个问题可以这样解决。它现在起作用了。但我不明白“.data”是一个函数,还是它只是表示与变量“data”中保存的数据的链接。因此,上面的语句可以概括为s=sprintf('%g',s.[变量名);]@user3022649
s
是一个结构,而
data
是该结构的一个字段。它可以通过
S.data
访问。查看有关结构以及如何使用结构的更多信息。
str = uiimport(); % import data
str = sprintf('%g', str); % or mat2str(str)
data = [-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1]'

save data.txt data              % store data
S = uiimport();                 % import data

str = sprintf('%g', S.data)     % without spaces
str = sprintf('%g ', S.data)    % with spaces
data =
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
    -1
str =
-1-1-1-1-1-1-1-1-1-1-1-1
str =
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1