小编Mem*_*ing的帖子

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万
查看次数

计算sum_i f(i)x(i)x(i)'快?

我正在尝试计算列向量的f(i) * x(i) * x(i)' 位置的总和x(i),x(i)'是转置,并且f(i)是标量.所以它是外部产品的加权总和.

在MATLAB中,通过使用可以非常快速地实现bsxfun.以下代码在我的笔记本电脑上运行260毫秒(MacBook Air 2010)

N = 1e5;
d = 100;
f = randn(N, 1);
x = randn(N, d);
% H = zeros(d, d);

tic;
H = x' * bsxfun(@times, f, x);
toc
Run Code Online (Sandbox Code Playgroud)

我一直在努力让朱莉娅做同样的工作,但我不能更快地完成它.

N = int(1e5);
d = 100;
f = randn(N);
x = randn(N, d);

function hess1(x, f)
    N, d = size(x);
    temp = zeros(N, d);
    @simd for kk = 1:N
        @inbounds temp[kk, …
Run Code Online (Sandbox Code Playgroud)

julia

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

如何生成总和等于N的连续序列

给定数N并生成具有1的差值的算术级数,以便在求和有限元之后给出数字N,例如:

For Example:
N=10
1 + 2 + 3 + 4 =10
N=20
2+3+4+5+6 = 20
N=30
4+5+6+7+8 = 30
Run Code Online (Sandbox Code Playgroud)

N <1000000

algorithm math

7
推荐指数
2
解决办法
1227
查看次数

inf或Inf?纳米还是NaN?

好像都infInf在MATLAB(也完全相同nanNaN,但不会Nan).有什么区别吗?

>> which inf
built-in (/Applications/MATLAB_R2011b.app/toolbox/matlab/elmat/inf)
>> which Inf
built-in (/Applications/MATLAB_R2011b.app/toolbox/matlab/elmat/Inf)
Run Code Online (Sandbox Code Playgroud)

如果它们是相同的,应该在实践中使用哪一个?为了分配数组,我一直在使用x = inf(3,5)样式跟随zeros并且ones都是小型的.为了分配单个值,我使用x = Inf.你认为这是一贯的使用吗?

matlab

6
推荐指数
2
解决办法
1272
查看次数

MATLAB 中的匿名函数损坏。“@sf%”是什么意思?

我被 MATLAB 中的分段错误难住了。它似乎是由从 mat 文件加载的匿名函数引起的。最初的匿名函数句柄是:

@(x)scaledNlfun(x,@logexp1,1e3) 
Run Code Online (Sandbox Code Playgroud)

但是当它加载时,它变成了:

@sf%1@(x)scaledNlfun(x,@logexp1,1e3)
Run Code Online (Sandbox Code Playgroud)

似乎没问题,当我在命令行中调用它时,但它会在函数中创建分段错误(或分段违规)。不是函数调用本身,而是之后的几行。在调试模式下,如果我单步执行语句,也没有问题。

堆栈跟踪显示一堆

[  0] 0x00002b20b97baba4 /usr/local/MATLAB/R2013a/bin/glnxa64/libmwm_interpreter.so+04127652
Run Code Online (Sandbox Code Playgroud)

它发生在 Linux 2.6.18-371.3.1.el5 SMP 上的 MATLAB 2012a 和 2013a 上。

此函数句柄使用“-v7.3”选项保存在parfor循环中,因为包含句柄的结构太大。如果我在加载 mat 文件后替换匿名函数,一切正常,所以我认为 matlabload函数有一个错误。

不幸的是,我无法创建一个最小的示例来重现错误。我尝试使用“-v7.3”在 parfor 中保存匿名函数句柄,但没有其他复杂的数据结构,它似乎工作正常。但是我有 80 个 mat 文件,它们会可靠地使 matlab 崩溃(其中许多超过 1GB)。

无论如何,有人知道“@sf%”是什么意思吗?(这不是 stateflow 工具箱)

matlab anonymous-function

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

在MATLAB中将值赋给结构数组的字段

我想替换结构数组中的字段的值.例如,我想在以下结构中将所有1替换为3.

a(1).b = 1;
a(2).b = 2;
a(3).b = 1;

a([a.b] == 1).b = 3; % This doesn't work and spits out:
% "Insufficient outputs from right hand side to satisfy comma separated
% list expansion on left hand side.  Missing [] are the most likely cause."
Run Code Online (Sandbox Code Playgroud)

这有一个简单的语法吗?我想为这种简单的操作避免丑陋的循环.

matlab

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

标签 统计

matlab ×4

algorithm ×1

anonymous-function ×1

julia ×1

logarithm ×1

math ×1

plot ×1