如何在 matlab 中使用“保存”命令作为可索引命令

Posted

技术标签:

【中文标题】如何在 matlab 中使用“保存”命令作为可索引命令【英文标题】:how to use 'save' command in matlab as an indexable command 【发布时间】:2020-04-26 09:31:06 【问题描述】:

有一个2550*720维度的矩阵。这个矩阵的每一行通过小波变换变成一个图像。问题是matlab中的“保存”命令,将所有2550张图像一起存储在一张图像中。问题是如何索引“保存”命令以分别存储这些图像? 谢谢你

clc;
clear;
close all;
load P300
load nP300
t = 1:100;
waveletname = 'db1';
P300_cwavelet=[];
ext = '.txt';
for i = 1 : size(P300,1)  
  y = cwt(P300(i,:),t,waveletname);
  P300_cwavelet = [P300_cwavelet;y];
  save('P300_cwavelet','P300_cwavelet');
end

【问题讨论】:

你想保存y,对吧? 如果你想将 y 的每个切片保存在单独的文件中,你可以使用save(sprintf('y%d',i),'y')。这会将每个 y 保存到一个名为 y1.maty2.mat ... 的文件中。您可以将 save('P300_cwavelet','P300_cwavelet') 行移到 for 循环之外,这会将连接的 P300_cwavelet 保存到单个文件中. 事先对变量进行切片(将其分配给新名称)。 MATLAB 使用 延迟复制,即它只指向新变量而不使用额外的内存,直到您实际更改新变量的值 【参考方案1】:

从您的问题和代码看来,您有一个 720 列的输入矩阵,但您希望每列存储一个小波变换。您可以通过在 for 循环中保存 y 来做到这一点。

您的结果数组 P300_cwavelet 在 for 循环的末尾包含所有列 y。您也可以通过只保存一次P300_cwavelet 来保存完整的结果:在 for 循环之后。

【讨论】:

以上是关于如何在 matlab 中使用“保存”命令作为可索引命令的主要内容,如果未能解决你的问题,请参考以下文章

matlab怎么保存 matlab如何保存

matlAB如何保存变量

Matlab 编译器可执行返回参数

MATLAB 中是不是提供基于零的索引

将输出错误消息保存到 MATLAB 中的文件

MATLAB 命令历史记录:如何保存现有历史记录的备份