小编Mat*_*ech的帖子

获取VBA中的子目录列表

  • 我想获得目录中所有子目录的列表.
  • 如果可行,我想将其扩展为递归函数.

然而,我最初获得子目录的方法失败了.它只显示包括文件在内的一切:

sDir = Dir(sPath, vbDirectory)
Do Until LenB(sDir) = 0
    Debug.Print sDir
    sDir = Dir
Loop
Run Code Online (Sandbox Code Playgroud)

该列表以".."和几个文件夹开头,以".txt"文件结尾.


编辑:
我应该补充说,这必须在Word中运行,而不是Excel(许多功能在Word中不可用),它是Office 2010.


编辑2:

可以使用确定结果的类型

iAtt = GetAttr(sPath & sDir)
If CBool(iAtt And vbDirectory) Then
   ...
End If 
Run Code Online (Sandbox Code Playgroud)

但这给了我新的问题,所以我现在正在使用基于的代码Scripting.FileSystemObject.

recursion vba ms-word ms-office word-vba

20
推荐指数
3
解决办法
4万
查看次数

semilog情节与坚持

如果我尝试使用对数轴绘制多个绘图,则禁用对数刻度.如果我删除了hold on日志刻度已启用,但我只能绘制单个绘图.

figure(1); clf
x = linspace(0,1,100);
y = exp(-x);

hold on;
semilogy(x, y);
semilogy(x, 2*y);
hold off;
Run Code Online (Sandbox Code Playgroud)

为什么?,如何创建多个对数比例图?

matlab plot logarithm

16
推荐指数
1
解决办法
3万
查看次数

git:致命:检测到可疑的所有权

我使用新的 Windows 安装和网络共享(NAS 系统)上的同一文件夹。安装 git 和 tortoisegit 后,我​​尝试连接到 git 存储库,但总是收到此错误。改变的是服务器而不是用户。

在此输入图像描述

我跑了

git config --global --add safe.directory '*'
Run Code Online (Sandbox Code Playgroud)

但这并没有改变什么。我怎样才能解决这个问题?

在哪里可以设置变量

GIT_TEST_DEBUG_UNSAFE_DIRECTORIES=true
Run Code Online (Sandbox Code Playgroud)

git-for-windows

14
推荐指数
2
解决办法
4万
查看次数

如何启动Matlab profiler

我转而使用Matlab 2012b(来自2011a),但未能找到如何在新的matlab gui中启动profiler gui.

profiler matlab

11
推荐指数
2
解决办法
1万
查看次数

批处理文件:传递具有空格的参数以实现功能

我正在使用批处理文件进行备份.我将选项传递给调用打包可执行文件的函数.除非参数包含空格,否则这种方法有效.这是相关代码:

SET TARGET="%SAVEDIR%\XP.User.Documents.rar"
SET FILES="%DIRUSER%\Eigene Dateien\*"      
SET EXLUCDE="%DIRUSER%\Documents\CDs" 
call:funcBackup %TARGET% %FILES% %EXLUCDE%

:funcBackup
    SET TARGET=%~1
    SET FILES=%~2
    SET EXCLUDE=%~3     
    echo."%PACKER% a -r -x"%EXCLUDE%" "%TARGET%" "%FILES%""
    ::call %PACKER% a -r -x"%EXCLUDE%" "%TARGET%" "%FILES%"
goto:eof
Run Code Online (Sandbox Code Playgroud)

在XP(德语版)%DIRUSER%扩展到"Dokumente und Einstellungen"

在那种情况下,TARGET是正确的,但FILES =="Dokumente"和EXCLUDE =="und",这意味着脚本因%DIRUSER%中的空格而失败.

我怎样才能解决这个问题?

windows spaces batch-file

10
推荐指数
1
解决办法
1万
查看次数

删除MATLAB中的空单元格

我想删除matlab单元格数组底部的所有空单元格.但是我发现的所有代码示例都将矩阵折叠为向量,这不是我想要的.

所以这段代码

a = { 1, 2; 3, 4; [], []}
emptyCells = cellfun('isempty', a); 
a(emptyCells) = []
Run Code Online (Sandbox Code Playgroud)

得到这个向量

a = [1] [3] [2] [4]

但我想要这个数组

a =

[1]    [2]

[3]    [4]
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

matlab cells

8
推荐指数
1
解决办法
2万
查看次数

使用fft的Matlab低通滤波器

我在matlab中使用前向和后向fft实现了一个简单的低通滤波器.它原则上有效,但最小值和最大值与原始值不同.

signal = data;
%% fourier spectrum
% number of elements in fft
NFFT = 1024;
% fft of data
Y = fft(signal,NFFT)/L;
% plot(freq_spectrum)

%% apply filter
fullw = zeros(1, numel(Y));
fullw( 1 : 20 ) = 1;
filteredData = Y.*fullw;

%% invers fft
iY = ifft(filteredData,NFFT);
% amplitude is in abs part
fY = abs(iY);
% use only the length of the original data
fY = fY(1:numel(signal));
filteredSignal = fY * NFFT; % correct maximum

clf; hold on; …
Run Code Online (Sandbox Code Playgroud)

matlab filtering fft lowpass-filter

8
推荐指数
1
解决办法
2万
查看次数

找到NaN值是单元格数组

假设我有以下数组:

a = {1; 'abc'; NaN}
Run Code Online (Sandbox Code Playgroud)

现在我想找出哪些索引包含NaN,以便我可以用''(空字符串)替换它们.

如果我用cellfunisnan,我得到一个无用的输出

cellfun(@isnan, a, 'UniformOutput', false)

ans = 
[          0]
[1x3 logical]
[          1]
Run Code Online (Sandbox Code Playgroud)

那我该怎么做呢?

matlab cells

7
推荐指数
1
解决办法
1万
查看次数

改善matlab可执行文件的启动时间

我已经编译了一个matlab独立的exe,我可以在任何安装了MATLAB Compiler Runtime的计算机上运行.

但是启动exe需要20-30秒!

如何准确地测量时间和最重要的时间 - 如何将其减少到1-2秒.

matlab executable

6
推荐指数
1
解决办法
5019
查看次数

matlabs plotyy with axis for each plot only only one side

以下代码显示了我的问题.如果蜱不在两侧的相同位置(这是正常情况......),则情节完全失败

我需要一个带有两个y轴但只在一侧有刻度的图.我被建议使用addaxis,但我不知道这对我有什么帮助,因为我不想要分离轴.

clf;
clc;
xaxis = 0:0.1:25;
ydata1 = linspace(12.1712,12.7679, length(xaxis));
ydata2 = linspace(0.3597,-28.7745, length(xaxis));

[AX,H1,H2] = plotyy(xaxis, ydata1, xaxis, ydata2);

% axis limits - x axis (min to max)
xlimits(1) = min(xaxis); xlimits(2) = max(xaxis);
set(AX, 'XLim', xlimits);
set(AX(2),'XTick',[]);

% y1 axis limits 
ylimits(1) = min(ydata1); ylimits(2) = max(ydata1);
ylimits(2) = ylimits(2) + (ylimits(2)-ylimits(1))*0.05;
set(AX(1), 'YLim', ylimits);

% y2 axis limits 
ylimits(1) = min(ydata2); ylimits(2) = max(ydata2);
ylimits(2) = ylimits(2) + (ylimits(2)-ylimits(1))*0.05;
set(AX(2), 'YLim', ylimits);

% y1 ticks 
set(AX(1),'YTick',[12.0:0.1:12.8]); …
Run Code Online (Sandbox Code Playgroud)

matlab plot

5
推荐指数
1
解决办法
4496
查看次数