小编Mad*_*ddy的帖子

将日期转换为最接近的月末日期MATLAB

我需要将datenumber转换为最接近的月末日期.我发现了一个在线链接,但对于大型矩阵来说效率非常低(http://www.mathworks.com/matlabcentral/fileexchange/26374-round-off-dates-and-times).Matlab(Financial Toolbox)是否具有内置功能?我找不到它.

date_in = 734421 ;
somefunction(date_in) --> Sept 2010
Run Code Online (Sandbox Code Playgroud)

谢谢!

matlab date financial

4
推荐指数
1
解决办法
2520
查看次数

在Matlab中将单元格数组打印为.txt

我有一个单元格数组需要根据特定格式打印在.txt文件中.我已经尝试了一些在线帮助(包括matlab中心,dlmcell但即使这样也没有给我想要的答案.Delimiter是\ t.

cellarray = { ...
        'AAPL' '2/20/2011' 100.5 
        'MSFT' '2/15/2011' 43.4551
            } ;
Run Code Online (Sandbox Code Playgroud)

输出应该是.txt文件,格式如下:(使用制表符分隔符)

"AAPL"    "2/20/2011"    100.5
"MSFT"    "2/15/2011"    43.4551
Run Code Online (Sandbox Code Playgroud)

单元格最少有8000行,最多15000行.没有行会有空列.矢量化解决方案是否可行?应该感谢你的帮助.

matlab printf text-files

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

忽略Octave中的某些行(但保留它们用于Matlab)

可能重复:
如何检测我是否正在运行MATLAB或Octave?

我的代码是使用MATLAB设计的,我仍然使用它.但是,如果我尝试使用Octave运行它的某些部分,我会收到错误.例如,MATLAB代码使用的pause on是Octave没有的代码.

有没有办法检查哪个编程环境正在使用代码?例如,

if  invoking_env == 'Matlab'
    % do this
else 
    % ok, so do this
end
Run Code Online (Sandbox Code Playgroud)

我可以使用,getenv('COMPUTERNAME')但在这种情况下,计算机名称是相同的!谢谢.

environment matlab octave getenv

4
推荐指数
1
解决办法
125
查看次数

在MATLAB中将数字转换为单元格数组中的字符串

我有一个包含数字和字符串数据的单元格数组.我需要将数字转换为字符串,以便我可以使用该unique()函数.

a = {1; 4; 'lf'}
result --> {'1', '4', 'lf'}; % Now unique() function can be used
Run Code Online (Sandbox Code Playgroud)

有在线解决方案来处理列是数字的情况.但这些不能在这里使用,因为至少有一行有字符串作为数据.应该理解矢量化解决方案.

string matlab type-conversion cell-array

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

SQL Server:创建非聚集索引而不为其指定名称

我使用 SQL Server 2008。

我正在尝试在我的表上创建非聚集索引。我想检查是否存在一种方法可以在不给索引命名的情况下创建它。

例如

CREATE TABLE #mytable (Date_ datetime NOT NULL, ID_ varchar(10) NOT NULL, Value_)
Run Code Online (Sandbox Code Playgroud)

当我向该表添加 PK 时,我没有指定该密钥的名称。例如

ALTER TABLE #mytable ADD PRIMARY KEY CLUSTERED (Date_ ASC, ID_ ASC)
Run Code Online (Sandbox Code Playgroud)

是否可以执行类似的操作来创建非聚集索引而不指定名称?

例如

ALTER TABLE #mytable ADD NONCLUSTERED INDEX (Date_, Value_)   -- FAILS!!!
Run Code Online (Sandbox Code Playgroud)

我知道的唯一命令是

CREATE NONCLUSTERED INDEX *keyname* ON #mytable (Date_, Value_)  
Run Code Online (Sandbox Code Playgroud)

sql-server indexing alter-table clustered-index non-clustered-index

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

Matlab中NULL和空矩阵的区别

我有一个非常简单的问题 - MATLAB中NULL和空矩阵的区别?

NULL CASE:a = null(1) - > a是1x0矩阵EMPTY CASE:a = [] - > a是0x0矩阵

谢谢!

null matlab matrix

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

在MATLAB中的循环中声明全局变量

是否可以在循环内的MATLAB中声明全局变量:

cellvar = { 'ni' ; 'equity' ; 'assets' } ;
for i = 1:size(cellvar,1)
    global cellvar{1}  % --> THIS GIVES AN ERROR
end

% Desired result:
global ni
global equity
global assets
Run Code Online (Sandbox Code Playgroud)

Matlab文档说:"没有全局命令的函数形式(即,你不能使用括号并引用变量名称)." 任何建议的解决方案?谢谢!

variables matlab global

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

从Windows DOS提示符运行MATLAB脚本

我正在尝试从Windows命令提示符运行Matlab脚本,但有时无法执行。手动启动时,脚本运行良好。Matlab版本是2011a,Windows是Server 2003 SP2。细节:

脚本mytask.m位于say里面E:\Production\Project。这是SAVED在Matlab的道路上。

当我将mytask.m放在bin文件夹中时,它可以通过以下命令正常执行:

     `C:\Program Files\MATLAB\R2011a\bin>matlab -r mytask`
Run Code Online (Sandbox Code Playgroud)

如果删除它并尝试在其原始位置访问它,则尽管启动了Matlab编辑器窗口,该脚本也不会运行:

     `C:\Program Files\MATLAB\R2011a\bin>matlab -r "E:\Production\Project\mytask"
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?谢谢。

matlab command-line dos batch-file

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

在MATLAB中使用不区分大小写"ismember"

我有两个单元格,第一列是字符串.我目前正在使用ismember匹配两个单元格中的第一列元素.但是成员是区分大小写的.我不能使用strcmpi,因为单元格大小不等.你能建议另一种方法吗?

cell1 = { 'AAPL' [2001] ; 'GOOG' [1999] ; 'MSFT' [2010] } ; 

cell2 = { 'AMZN' [2009] ; 'HP' [2011] ; 'CSC' [2005] ; 'Goog' [2010] } ;
Run Code Online (Sandbox Code Playgroud)

不区分大小写的方法:

tf = ismember(cell1(:,1), cell2(:,1)) ; % tf should be now [0; 1; 0]
Run Code Online (Sandbox Code Playgroud)

谢谢!

matlab

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

MATLAB中的textscan:将NULL值读为NaN

我有一个包含以下数据的.txt文件:

sampleF.txt - >(制表符分隔)

MSFT    200    100
APPL    10    NULL
AMZN    20    40
Run Code Online (Sandbox Code Playgroud)

我需要使用读取此数据textscan.我在阅读NULL数据时遇到问题.使用treatasemptyparam,我可以把它读成0.但我想把它读成NaN.请帮忙!谢谢!

fName = '.....\sampleF.txt'
[fid, message] = fopen(fName) ;
if fid < 0, disp(message), else
    datatxt = textscan(fid, '%q %d %d', 'Delimiter', '\t','treatAsEmpty','NULL');
    datatxt = [ datatxt {1} num2cell(datatxt {2}) num2cell(datatxt {3})] ;
    fclose(fid) ; 
end

%datatxt = { 'MSFT' [200] [100] ; 'AAPL' [10] [NaN] ; 'AMZN' [20] [40] } 
Run Code Online (Sandbox Code Playgroud)

file-io matlab nan tsv textscan

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

将struct字段加载到变量中(MATLAB)

我有一个结构存储在我的硬盘上.我需要将其中一个Field加载到局部变量中.一个简单的负载得到了

% 'PRICES' is the stored struct.  1st fieldname is '.Raw'.  
% Only '.Raw' needs to be loaded

var = load( fullfile(path, 'PRICES.Mat') ) % Wrong as var becomes a struct containing a struct.
% DESIRED value: var = PRICES.Raw ;
Run Code Online (Sandbox Code Playgroud)

是否可以一步完成?我可以覆盖var并完成这个,但有没有直接的方法呢?谢谢.

variables matlab struct matlab-load

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

将数字附加到数字 - Matlab

我只有一个列whole numbers,我需要11在前面添加一个数字(比如说) -

data = (1:1300000)';
% append 11 to these numbers

newdata = [111 ;  112 ; 113 ; 114 ; ......]
Run Code Online (Sandbox Code Playgroud)

有没有办法不使用str2num(由于速度问题)?谢谢.

matlab numbers append digits

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

从Matlab中的给定日期减去月份

我需要从给定日期减去21个月.

我在下面给出的解决方案只需要我到达给定年份的第一个月:(

[a,b,c]= datevec(date);
b= b-21;
datestr(datenum(a,b,c)) %--> 11-Jan-2011 (WRONG).
Run Code Online (Sandbox Code Playgroud)

我希望答案是2009年6月11日.

matlab date date-math

0
推荐指数
1
解决办法
6861
查看次数